如何xinit
查看环境变量?
鉴于以下情况xinitrc
:
echo test $HOSTNAME test
我在终端上看到输出test test
,这表明$HOSTNAME
xinit 运行时未设置,即使echo $HOSTNAME
在终端(运行startx
)上,它也按预期工作
如何xinit
查看环境变量?
鉴于以下情况xinitrc
:
echo test $HOSTNAME test
我在终端上看到输出test test
,这表明$HOSTNAME
xinit 运行时未设置,即使echo $HOSTNAME
在终端(运行startx
)上,它也按预期工作
$HOSTNAME 在您之前不是环境变量
export
。在那之前,它只是一个内部“shell 变量”,只有您输入命令的这个进程才知道。(还有一些其他类似的内置 shell 变量,并且您设置的任何自定义变量也有这种行为。)您使用的测试
echo
不会显示差异,因为所有变量都是由 shell 本身扩展的,而不是由“echo”命令扩展的。相反,使用
env
或printenv
查看子进程继承的实际环境块。(或者,您可以使用declare -p HOSTNAME
它来检查它是否具有“x”(导出)标志。)请注意,$HOSTNAME 的存在实际上并不取决于您是尝试以交互方式还是通过脚本使用它——它的出现取决于正在使用的 shell ;例如 Bash 提供了它,但 Sh 或 Dash 没有。
因此,如果您的 xinitrc 脚本有
#!/bin/bash
标头,即使它不是通过环境继承的,它也可以使用 $HOSTNAME。