1

Посмотрите на этот вывод терминала ...

bjorn@jungleland:~$ cd bin
bjorn@jungleland:~/bin$ ./first.sh 
Hello World
bjorn@jungleland:~/bin$ cd ..
bjorn@jungleland:~$ pwd
/home/bjorn
bjorn@jungleland:~$ echo $PATH
/home/bjorn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/bjorn/bin
bjorn@jungleland:~$ ./first.sh
bash: ./first.sh: No such file or directory
bjorn@jungleland:~$ 

Почему first.sh не найден, когда я нахожусь в моем домашнем каталоге? Я попытался выйти и снова!

1 ответ1

6

Потому что вы специально запускаете ./first.sh , то есть скрипт с именем "first.sh", который находится в текущем каталоге (./). Находится ли он в $ PATH или нет, не имеет значения. Если вы дадите полный путь, как вы делаете, система будет искать исполняемый файл по указанному пути. Сравните команды ниже:

/bin/ls      <-- works
ls           <-- works
../../bin/ls <-- works if you are in $HOME
./ls         <-- fails unless you are in /bin

То, что вы хотите запустить, это first.sh вместо ./first.sh .

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