Я пытаюсь написать свой первый скрипт оболочки (я использую Ubuntu 10.x)
Вот как выглядит мой «сценарий»
cd /some/path/to/scripts
# pwd (if uncommented, this shows we HAVE really changed directory to /some/path/to/scripts
# echo `ls` (if uncommented, shows that testscript is in our working directory)
# the next line is where bash LIES: 'testscript: No such file or directory'
. testscript # (./testscript doesn't work either)
Я поместил следующие отладочные операторы (после компакт-диска) в приведенный выше скрипт, чтобы убедиться, что все в порядке:
pwd
echo `ls -lhrt`
и он отображал все файлы в каталоге. Поэтому я не понимаю сообщение об ошибке, которое я получаю.
[Редактировать]
Я изменил свой вопрос - чтобы сосредоточиться на ОСНОВНОЙ проблеме относительно того, почему я получаю сообщение об ошибке «Нет такого файла или каталога».
Вот факты:
- Тестовый скрипт является исполняемым и находится в /some /path /to /scripts
- когда я вручную набираю команды в приведенном выше сценарии, тестовый скрипт запускается успешно
Мой вопрос тогда такой:
Как получается, что эти же (тривиальные) команды работают в командной строке, но не работают при выполнении из пакетного сценария?
В равной степени (если не важнее) вопрос - как мне это исправить?
Проще говоря, я хочу написать скрипт, который делает это:
- Изменить каталог на указанный (жестко закодированный)
- Запустить скрипт в текущем рабочем каталоге