Intereting Posts
Есть ли «scp -p», как «cp -p», Отладка программы Java для изменения файла конфигурации часового пояса на Ubuntu Как контролировать «необработанный» порт подключенной сети в RedHat 4/5? использование даты в сценарии оболочки Что такое echo ' \ nlocalhost \ n'> / etc? Сценарий оболочки для резервного копирования VMware VM, экспорт каждой виртуальной машины в список, а затем запрос пользователя на ввод Попытка удалить эхо-код пароля в Redhat 5 при входе в систему Если условие как один вкладыш Для управления установкой в ​​fldigi доступно ttySn, но нет ttyUSBn Предупреждение: предупреждение: вы указали опцию -maxdepth после аргумента без опции Почему netcat не использует правильный интерфейс, связанный с IP? xorg падает при запуске Firefox Показывать вывод команды, запускаемой внутри экрана, если она выходит с ошибками Нужна помощь в определении переменной в awk Разрешить запуск приложения python, если пароль пользователя неверен

Почему я не могу толкнуть

Я долгое время использовал pushd и popd когда писал сценарий bash. Но сегодня, когда я выполняю which pushd , я ничего не получаю в качестве вывода. Я не могу этого понять вообще. Я всегда думал, что pushd – это просто команда, как cd , ls и т. Д.

Так почему же which pushd дает мне ничего?

popd и pushd – это команды, встроенные в Bash, они не являются исполняемыми popd которые хранятся на вашем жестком диске как настоящие двоичные файлы.

выдержка из страницы руководства bash

  DIRSTACK An array variable (see Arrays below) containing the current contents of the directory stack. Directories appear in the stack in the order they are displayed by the dirs builtin. Assigning to members of this array variable may be used to modify directories already in the stack, but the pushd and popd builtins must be used to add and remove directories. Assignment to this variable will not change the current directory. If DIRSTACK is unset, it loses its special properties, even if it is subsequently reset. 

Полный список всех встроенных команд доступен на справочной странице Bash, а также здесь – http://structure.usc.edu/bash/bashref_4.html .

Вы также можете использовать compgen -b или enable чтобы получить полный список всех этих встроенных функций:

CompGen

 $ compgen -b | grep -E "^push|^pop" popd pushd 

включить

 $ enable -a | grep -E "\bpop|\bpus" enable popd enable pushd 

Кроме того, если вы хотите получить помощь по встроенным функциям, вы можете использовать команду help :

 $ help popd | head -5 popd: popd [-n] [+N | -N] Remove directories from stack. Removes entries from the directory stack. With no arguments, removes the top directory from the stack, and changes to the new top directory. $ help pushd | head -5 pushd: pushd [-n] [+N | -N | dir] Add directories to stack. Adds a directory to the top of the directory stack, or rotates the stack, making the new top of the stack the current working