Может ли кто-нибудь объяснить мне, как cd -
командная работа? человек cd говорит мне, что An argument of - is equivalent to $OLDPWD.
Затем я обнаружил в сети, что $ OLDPWD - это предыдущий рабочий каталог, установленный командой cd. И когда я делаю cd - на моем unix я получаю -bash: cd: OLDPWD not set
что сбивает меня с толку.
ОБНОВИТЬ: теперь он работает, он дает мне предыдущий рабочий каталог. Думаю, я раньше не использовал команду и cd, поэтому $ OLDPWD не был установлен.
Еще один вопрос, что cd
(введите cd и нажмите Enter) делает? Я бы не сказал, что ничего. Есть ли лучшее техническое объяснение?
host [~]# cd
host [~]#
OLDPWD
не установлен, потому что вы не меняли каталог
[dave@odessa ~]$ cd -
-bash: cd: OLDPWD not set
[dave@odessa ~]$ cd /tmp
[dave@odessa tmp]$ cd -
/export/home/dave
[dave@odessa ~]$ cd /tmp
[dave@odessa tmp]$ echo $OLDPWD
/export/home/dave
cd
без всяких аргументов будет chdir
к $HOME
[dave@odessa tmp]$ echo $HOME
/export/home/dave
[dave@odessa tmp]$ HOME=/ cd
[dave@odessa /]$ pwd
/
type cd
говорит нам, что
cd - это встроенная оболочка
man sh
сообщает нам, что вы узнали:
Если в качестве аргумента указано одиночное тире, оно будет заменено значением OLDPWD.
Внутренняя реализация cd в оболочке делает чдырь (2) -системный вызов.
cd
сам по себе изменяется в ваш домашний каталог
$ cd /tmp
$ pwd
/tmp
$ cd
$ pwd
/home/username