Можно ли вызвать скрипт в этом примере, названный в hey.sh
честь каждой команды bash?
Например, вы набираете ls
hit enter и ls hey.sh
run , а затем запускаете.
Затем вы набираете cd ..
(или любую другую команду) , затем запускается cd hey.sh
, и так далее.
Ответы:
Примечание: переменные среды против переменных оболочки
По умолчанию,
PROMPT_COMMAND
это не переменная окружения . Это просто переменная оболочки .К обоим типам переменных обращаются одинаково (
"$variable*"
), но переменные среды наследуются дочерними процессами, а переменные оболочки - нет.Соглашение состоит в том, чтобы использовать переменные окружения + переменные оболочки, которые настраивают вашу оболочку (PROMPT_COMMAND настраивает вашу оболочку), но оставляют другие типы переменных строчными.
В bash вы можете сделать:
declare -p
узнать, экспортируется ли переменная (= является переменной среды) или нет:источник
export
. Просто установите его (или добавьте к нему, например, как показано выше).