当我在 osx 终端中按下 set 命令时,输出来自哪里?

当我在 osx 终端中按下 set 命令时,输出来自哪里?

当我输入单词时,我会得到很多东西

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

相关内容