Запись моего первого сценария удара (строка 2: testscript: Никакой такой файл или каталог)

Я пытаюсь записать свой первый сценарий оболочки (я запускаю 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`

и это отобразило все файлы в каталоге. Таким образом, я не понимаю сообщение об ошибке, я добираюсь.

[Править]

Я изменил свой вопрос - чтобы сфокусироваться на Основном вопросе относительно того, почему я не получаю 'Такой файл или каталог' сообщение об ошибке.

Вот факты:

  • testscript является исполняемым файлом и находится в/some/path/to/scripts
  • когда я вручную ввожу команды в сценарии выше, testscript работает успешно

Мой вопрос затем - это:

Как получается, что эти те же (тривиальные) команды работают над командной строкой и все же сбоем для работы при выполнении из сценария пакетной обработки?.

Одинаково (если не более важный), вопрос - как я фиксирую это?

Помещенный просто я хочу записать сценарий, который делает это:

  1. Каталог изменения в указанное (трудно кодированный) один
  2. Запустите скрипт в текущем рабочем каталоге
0
задан 14.01.2011, 14:30

1 ответ

Хижина указывает на неправильное местоположение для интерпретатора, это должен быть полный путь, который (так как Вы хотите использовать удар для сценария) наиболее вероятен:

#!/bin/bash

Цель хижины состоит в том, чтобы явно указать интерпретатор, с которым должен быть запущен скрипт. Если Вы не укажете интерпретатор, то он будет выполнен на любом интерпретаторе, который Вы выполняете в то время, когда он выполняется.

править: Я только что заметил, что у Вас есть другая ошибка, перечисленная в Вашем заголовке. Это, вероятно, потому что Вы используете . testscript, который, скорее всего, как предполагается, является ./testscript (при попытке выполнить его). Удостоверьтесь, что Вы сделали chmod +x для создания исполняемого файла сценария, или это перестанет работать.

1
ответ дан 24.11.2019, 12:11

Теги

Похожие вопросы