Я пытаюсь запустить файл .sh на RH6 и получаю эту ошибку ...

cannot open '' for reading: No such file or directory

Скрипт, который я запускаю, внутренне ссылается на другие скрипты, расположенные в том же каталоге. Я могу видеть их, используя ls -la .

Примечание: этот скрипт отлично работает на RH4. Я получил новую свежую машину RH6, на которой я пытаюсь запустить свои скрипты.

Мой скрипт abc.sh как указано ниже

. fox_comm_server_details.sh
. fox_comm_topic_names.sh
. fox_comm_sh_tools.sh

ссылается на другие файлы скриптов (.sh).

Когда я запускаю свой abc.sh (с ./abc.sh) он говорит

fox_comm_server_details.sh: cannot open [No such file or directory]

Я подтвердил, что необходимые скрипты присутствуют в каталоге, и у меня есть разрешения на них. Если я abc.sh как показано ниже ...

. ./fox_comm_server_details.sh
. ./fox_comm_topic_names.sh
. ./fox_comm_sh_tools.sh

На этот раз он не жалуется на отсутствующие файлы, а на какую-то другую ошибку, как указано ниже ...

read_fox_comm_servers_list[134]: read_fox_comm_servers_list_defaults[37]: local: not found [No such file or directory]

read_fox_comm_servers_list и read_fox_comm_servers_list_defaults - это функции, которые определены в fox_comm_sh_tools.sh следующим образом ...

function read_fox_comm_servers_list
{
        read_fox_comm_servers_list_defaults
        read_fox_comm_servers_list_overrides
}

function read_fox_comm_servers_list_defaults
{
        local tempfile=/tmp/read_fox_comm_servers_list_defaults.$$
}

и получить вышеупомянутую ошибку.

1 ответ1

0

Снимок в темноте: пожалуйста, отредактируйте свой вопрос, нажав на эту ссылку, потому что это действительно трудно понять.

В общем, кажется, что где-то в скрипте (или в нижнем индексе) переменная не установлена с именем файла.
Вы можете заметить '' без имени" в вашем сообщении об ошибке

не могу открыть '' для чтения: нет такого файла или каталога

Вы можете найти, где находится ошибка при активации отладки в вашей оболочке.

set -x           # to activate debugging  
./myscript.sh    # here your script invocation  
set +x           # to stop debugging 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .