Вы на самом деле не задавали конкретного вопроса, но вот некоторые комментарии, которые, надеюсь, помогут вам понять, что происходит:
объявление 1
Если вы просто введите
$PATH
в ваш терминал оболочка expands
переменную с именем $PATH
и затем attempts
выполнить ее contents
что, очевидно, не имеет особого смысла в отношении $PATH
. Попробуйте запустить
$ foo=ls
$ $foo
и вы поймете, что происходит. Обратите внимание, что в большинстве случаев вы не хотите сохранять команду в переменной, вам нужно прочитать BashFAQ/050, иначе я пытаюсь поместить команду в переменную, но сложные случаи всегда терпят неудачу! узнать немного о крайних случаях и почему это вообще плохая идея, если вы точно не знаете, что делаете.
объявление 2
Используя echo $var
вы выводите содержимое переменной $var
на экран. Обратите внимание, что может произойти word splitting
и обычно вы хотите заключить в кавычки свои переменные, чтобы избежать этого:
$ echo "$var"
объявление 3
Это не работает, потому что cd
является командой (ОК, обычно это встроенная оболочка), а ..
является ее параметром, и эти два должны быть разделены пробелами, чтобы анализатор оболочки мог подобрать их как отдельные токены:
$ cd ..
Обратите внимание, что вы можете настроить псевдоним для работы cd..
:
$ alias cd..='cd ..'
но я бы советовал против этого и узнал, как правильно использовать оболочку Unix вместо того, чтобы подражать DOS
.