Запуск исполняемого сценария Bash выдает «Команда не найдена»

Один из способов сделать это:

#! /usr/bin/env bash
pipe=/path/to/pipe
[ -p "$pipe" ] || mkfifo -m 0600 "$pipe" || exit 1
while :; do
    while read -r cmd; do
        if [ "$cmd" ]; then
            printf 'Running %s...\n' "$cmd"
            # sh -c "$cmd" sh
        fi
    done <"$pipe"
done

Вероятно, раскомментировать строку sh— плохая идея.

0
02.07.2019, 00:02
2 ответа

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

/path/to/script

Если только написать

script

bash будет искать в PATHфайл с именем script. Грубо говоря, PATH— это список каталогов, в которых bash будет автоматически искать файлы. Попробуйте

echo $PATH

Если вы открываете терминал в каталоге, где находится script, вы также можете написать

./script
1
28.01.2020, 02:30

Скорее всего, это означает, что ваш текущий рабочий каталог не указан в PATH (и это хорошо ).

Попробуйте:

./myScript.bash
1
28.01.2020, 02:30

Теги

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