Я пытаюсь записать свой первый сценарий оболочки (я запускаю 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)
Я поместил следующие операторы отладки (после CD) в сценарии выше, чтобы удостовериться, что все было в порядке:
pwd
echo `ls -lhrt`
и это отобразило все файлы в каталоге. Таким образом, я не понимаю сообщение об ошибке, я добираюсь.
[Править]
Я изменил свой вопрос - чтобы сфокусироваться на Основном вопросе относительно того, почему я не получаю 'Такой файл или каталог' сообщение об ошибке.
Вот факты:
Мой вопрос затем - это:
Как получается, что эти те же (тривиальные) команды работают над командной строкой и все же сбоем для работы при выполнении из сценария пакетной обработки?.
Одинаково (если не более важный), вопрос - как я фиксирую это?
Помещенный просто я хочу записать сценарий, который делает это:
Хижина указывает на неправильное местоположение для интерпретатора, это должен быть полный путь, который (так как Вы хотите использовать удар для сценария) наиболее вероятен:
#!/bin/bash
Цель хижины состоит в том, чтобы явно указать интерпретатор, с которым должен быть запущен скрипт. Если Вы не укажете интерпретатор, то он будет выполнен на любом интерпретаторе, который Вы выполняете в то время, когда он выполняется.
править: Я только что заметил, что у Вас есть другая ошибка, перечисленная в Вашем заголовке. Это, вероятно, потому что Вы используете . testscript
, который, скорее всего, как предполагается, является ./testscript
(при попытке выполнить его). Удостоверьтесь, что Вы сделали chmod +x
для создания исполняемого файла сценария, или это перестанет работать.