是否可以在此示例中调用以hey.sh
每个 bash 命令命名的脚本?
例如,您输入ls
hit enter 和 ls 运行,然后hey.sh
将运行。
然后键入cd ..
(或任何其他命令), cd running 然后hey.sh
将运行,依此类推。
PSk*_*cik 30
PROMPT_COMMAND+="hey.sh;"
Run Code Online (Sandbox Code Playgroud)
PROMPT_COMMAND 如果设置,该值在发出每个主要提示之前作为命令执行。
默认情况下,PROMPT_COMMAND
是不是一个环境变量。它只是一个shell 变量。
两种类型的变量都以相同的方式访问 ( "$variable*"
),但环境变量由子进程继承,而shell 变量则不然。
约定是大写环境变量+ 配置您的 shell 的 shell 变量(PROMPT_COMMAND 确实配置了您的 shell),但将其他类型的变量保持为小写。
在bash 中,您可以执行以下操作:declare -p
找出变量是否已导出(= 是环境变量):
$ declare -p PATH
declare -x PATH=... #-x means it's exported
$ declare PROMPT_COMMAND
declare -- PROMPT_COMMAND=... #no -x so just a shell variable
Run Code Online (Sandbox Code Playgroud)