Linux 从桌面快捷方式调用shell脚本时未读取.bashrc
我在理解linux中的行为时遇到了一个简单的问题。简而言之,在linux上,如果我从“桌面快捷方式”调用sh脚本,那么脚本将无法看到最新的环境变量(在bashrc中设置)。所以我想知道这个shell脚本位于什么范围 要创建测试用例并复制:Linux 从桌面快捷方式调用shell脚本时未读取.bashrc,linux,bash,redhat,desktop-shortcut,Linux,Bash,Redhat,Desktop Shortcut,我在理解linux中的行为时遇到了一个简单的问题。简而言之,在linux上,如果我从“桌面快捷方式”调用sh脚本,那么脚本将无法看到最新的环境变量(在bashrc中设置)。所以我想知道这个shell脚本位于什么范围 要创建测试用例并复制: 创建一个简单的shell脚本“testme.sh”: !/bin/sh echo "Hi This is a test script checking the env var"; echo "TESTVAR = $TESTVAR"; read in echo
阿披实。参见bash手册的调用部分。这里有一段摘录 当bash作为一个交互函数调用时 登录shell,或作为非交互式 shell使用--login选项,它 首先读取并执行命令 从文件/etc/profile,如果 文件存在。在读了那个文件之后, 它查找~/.bash_配置文件, ~/.bash\u登录和~/.profile,在 命令,并读取和执行命令 从存在的第一个开始 可读的。--noprofile选项可能会 在外壳启动时使用 抑制这种行为 当登录shell退出时,bash读取 并执行文件中的命令 ~/.bash\u注销(如果存在) 当一个交互式shell不是 启动一个登录shell,bash读取 并执行来自~/.bashrc的命令, 如果该文件存在。这可能是 通过使用--norc选项禁用。 --rcfile file选项将强制 bash读取和执行命令 从文件而不是从~/.bashrc 长话短说,如果您希望非交互式shell设置某些环境变量,请将它们放入
~/.bash_profile
而不是~/.bashrc
export TESTVAR=test_this_variable