【问题标题】:Unexpected entry at end of bash environment variable listbash 环境变量列表末尾的意外条目
【发布时间】:2020-10-16 05:11:41
【问题描述】:

当我在 Ubuntu 18.04.4 下打开终端时。我输入不带参数的“set”,环境变量列表的末尾如下所示:

XDG_SESSION_TYPE=x11
XDG_VTNR=1
XMODIFIERS=@im=ibus
_=macOrg
command_not_found_handle () 
{ 
    if [ -x /usr/lib/command-not-found ]; then
        /usr/lib/command-not-found -- "$1";
        return $?;
    else
        if [ -x /usr/share/command-not-found/command-not-found ]; then
            /usr/share/command-not-found/command-not-found -- "$1";
            return $?;
        else
            printf "%s: command not found\n" "$1" 1>&2;
            return 127;
        fi;
    fi
}

Bash 版本是 4.4.20(1)。谁能解释为什么 command_not_found_handle () 函数体会出现在这里? 谢谢

【问题讨论】:

  • man bash 对关键字 command_not_found_handle 有什么看法?
  • 因为你的操作系统默认包含在shell初始化中
  • 在ubuntu-16中,我在/etc/bash.bashrc找到了。

标签: bash environment-variables


【解决方案1】:

好的,我想我现在看到了。我没有意识到 set 和 env 之间存在差异,如此处所述set vs env

引用:

长话短说:set 可以看到 shell-local 变量,而 env 不能。 ... 由于 set 是一个内置的 shell 命令,它也看到了 sees shell-local 变量(包括 shell 函数)。另一方面,env 是一个 独立可执行;它只看到 shell 的变量 传递给它,或环境变量。2011 年 4 月 14 日

感谢回复的人。

【讨论】:

    猜你喜欢
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多