![当我在 osx 终端中按下 set 命令时,输出来自哪里?](https://linux22.com/image/608987/%E5%BD%93%E6%88%91%E5%9C%A8%20osx%20%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%8C%89%E4%B8%8B%20set%20%E5%91%BD%E4%BB%A4%E6%97%B6%EF%BC%8C%E8%BE%93%E5%87%BA%E6%9D%A5%E8%87%AA%E5%93%AA%E9%87%8C%EF%BC%9F.png)
当我输入单词时,我会得到很多东西
set
在 mac osx 10.8 终端中。
我只在我的 .profile 和 .bashrc 文件中发现了一小部分。我也查看了 /etc/paths
我找不到输出来自哪里。我已经搜索了好一会儿,但没有任何额外的结果。这个命令到底从哪里获取终端上的信息输出?
例如这个函数 update_terminal_cwd ()
答案1
set
显示您的机器和 shell 中存在的所有环境变量和内置函数以及收集的其他信息。
如果你想了解整个故事,检查内置的源代码。
为了解决您的示例,update_terminal_cwd
在默认的系统范围的 .bashrc 文件中:
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
return
fi
PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi