Сценарий оболочки CD не удается, даже если путь правильный - PullRequest
1 голос
/ 13 июля 2011

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

Я сделал что-то простое, как:

cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar

Если я выполняю команды вручную, все в порядке. Если я сохраняю их в .sh, а затем использую #bash script.sh, я получаю следующую ошибку: «Не каталог cd: / var / www / html». Любая идея почему?

Ты за свое время.

Примечания: я попробовал версию скрипта на виртуальной машине (CentOS 5.5), и скрипт работал нормально, проблема возникает на реальной машине, где я хочу его использовать (я использовал тот же образ диска ОС, те же конфигурации, что и на виртуальная машина ... это действительно очень странно для меня).

Добавлено: Также я пытаюсь вызвать что-то вроде запуска службы mysqld ... это также не дает возможности сказать, что dir не существует (тем не менее, если я запускаю вручную, он работает.).

Ответы [ 3 ]

4 голосов
/ 13 июля 2011

Я решил проблему - это довольно интересно).

Я создал скрипт на виртуальной машине, работающей в Windows с ОС Centos OS, ввод в windows - "\ r \ n", а в linux - "\ n".

Сценарий работал на виртуальной машине, потому что код для ввода был правильным, в то время как на втором компьютере с родным linux он был некорректным.Я создал точно такой же сценарий на Linux, и все вернулось 2 нормально;).

Обратите внимание ... часть mkdir работала, потому что я использовал другой упрощенный скрипт, написанный на linux.

2 голосов
/ 22 августа 2012

В связанной заметке я обнаружил, что символ "~" не работает в bash, поэтому, если вы используете его, попробуйте заменить его на полный путь.

1 голос
/ 13 июля 2011

Похоже, ваш cp может копировать test.jar в файл html в каталоге www.Убедитесь, что HTML существует и является каталогом, прежде чем пытаться cp.

mkdir -p /var/www/html
cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar
...