
Взгляните на этот вывод терминала...
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
Поскольку вы запускаете конкретно ./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
.