назначение оболочки bash $ HOME и выполнение скрипта - PullRequest
1 голос
/ 15 февраля 2012

Я только начал изучать Unix и до сих пор столкнулся с двумя простыми, но трудными для решения проблемами:

  • Когда я устанавливаю HOME='' в сценарии оболочки для указанного каталога, каталог current больше не кажется распознанным. То есть cd ~ / выводит сообщение: «нет такого файла или каталога». Хотя, как ни странно, если в сценарии выполняются псевдонимы, вызов источника, тем не менее, активирует их. Как получилось?

Пример:

$ more .profile
HOME="~/Documents/Basics/Unix/Unix_and_Perl_course"
cd $HOME
[...]
$ source .profile
-bash: cd: ~/Documents/Basics/Unix/Unix_and_Perl_course: No such file or directory
  • Когда я создал простой скрипт оболочки через nano ('hello.sh'), я не могу выполнить его, просто набрав 'hello.sh' в терминале. Эта проблема не может быть решена даже после того, как я 'chmod + x' файл. В чем проблема?

Пример:

$ more hello.sh 
# my first Unix shell script
echo "Hello World"
$ hello.sh
bash: hello.sh: command not found

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Вы также не хотите «перегружать» $ HOME, местоположением по умолчанию для HOME всегда является ваш домашний каталог. Если ты лжешь с этим, многие вещи сломаются.

Что касается hello.sh - это потому, что у вас нет '.' в вашем $ PATH. (Что хорошо)

Попытка:

./hello.sh

Если он говорит, что не может выполнить

chmod 755 hello.sh
./hello.sh
1 голос
/ 15 февраля 2012
  1. ~ = $ HOME
  2. . (pwd) отсутствует в переменной $ PATH
...