我使用了由其他人编写的脚本test.sh
,以bash shebang开头:
#!/bin/bash -l
...
echo TEST: $TEST
从我所看到的情况来看,这会对脚本中使用的变量产生影响:
TEST=hey ./test.sh
,我可以看到TEST: hop
,hop
是TEST
.bash_profile
的值
export TEST=hey
,则相同
-l
标志,那么同样的命令会返回TEST: hey
,正如我预期的那样有人可以解释一下这种行为吗? bash的帮助没有帮助。
答案 0 :(得分:22)
-l
选项(根据man page)使“bash表现为好像已作为登录shell调用”。登录shell从主目录中读取某些初始化文件,例如.bash_profile
。由于您在TEST
中设置了.bash_profile
的值,因此在bash
启动时,您在命令行中设置的值会被覆盖。