1

Уже просили миллион различных версий этого, но я все еще потерян, извините. Вот кое-что из того, что я получаю ...

В терминале:

$PATH
-bash: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin: No such file or directory

echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin

cd..
-bash: cd..: command not found

1 ответ1

3

Вы на самом деле не задавали конкретного вопроса, но вот некоторые комментарии, которые, надеюсь, помогут вам понять, что происходит:

объявление 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 .

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