LINUX.ORG.RU

С крипты работают, делают бэкапы и тд, но вот стало интересно на что ругается bash

 ,


0

2

backup.sh: line 1: !/bin/bash: No such file or directory .
При этом скрипт работает, 3 раза в день создаёт бэкап базы данных, но тогда откуда эта жалоба basha?

☆☆

Последнее исправление: erzent (всего исправлений: 1)

Ответ на: комментарий от vurdalak

это и есть вся строка ошибки.
[root@redmine ~]# sh backup.sh
backup.sh: line 1: !/bin/bash: No such file or directory
[root@redmine ~]#
И простой скрипт приведу в пример.

#!/bin/bash
mount -t cifs //20.0.124.211/backup/ /shares/t -o
username=user,password=pass,domain=////

mysqldump -uredmine -ppass -R redmine | gzip >/backup/redmine-wi-`date +%Y-%m-%d`.sql.gz
exit 0

erzent ☆☆
() автор топика
Ответ на: комментарий от erzent

Ну ты ж сразу не показал. Походу сбой какой-то, пойду логи libastral'а почитаю.

alozovskoy ★★★★★
()
Ответ на: комментарий от erzent

Относительно корня путь к bash должен быть /bin/bash. Команда выполнена в /bin в качестве текущего каталога?

yars068 ★★★★
()
Ответ на: комментарий от erzent

http://www.opennet.ru/docs/RUS/bash_scripting_guide/c178.html#INVOKING

Некоторые разновидности UNIX (основанные на 4.2BSD) требуют, чтобы эта последовательность состояла из 4-х байт, за счет добавления пробела после !, #! /bin/sh.

Dron ★★★★★
()
Ответ на: комментарий от erzent

Взяли код со стороны, пофиксили требоване с пробелом, но не убрали вывод предупреждения, либо работает в режиме совместимости. Либо ещё чего. Глянь чё за реализация там у вас баша.

Да и забей на это вообще. Знаешь теперь и ладно.

А может и бага это, хз.

Dron ★★★★★
()
Последнее исправление: Dron (всего исправлений: 2)
Ответ на: комментарий от erzent

добится немного подобной магии смог лишь поставив в символ возврата каретки без переноса строки
!/bin/bash\r#!/bin/bash
echo script work

и скрывает баг методом:
cat script.sh

кажется у маков такая штука значит нормальный перевод строки.

bl ★★★
()
Ответ на: комментарий от bl

localghost:/tmp> echo -e '\!/bin/bash \r#!/bin/bash\necho script work' > run.sh
localghost:/tmp> cat run.sh
#!/bin/bash
echo script work
localghost:/tmp> ./run.sh
./run.sh: line 1: !/bin/bash: Нет такого файла или каталога
script work
bl ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.