繁体   English   中英

Bash shebang选项-l

[英]Bash shebang option -l

我使用了一个脚本test.sh ,由其他人编写,以bash shebang开头:

#!/bin/bash -l
...
echo TEST: $TEST

从我所看到的,这对脚本中使用的变量有影响:

  • 如果我运行TEST=hey ./test.sh ,我可以看到TEST: hophop是我的.bash_profile中变量TEST的值
  • 如果我在运行脚本之前export TEST=hey ,这是一样的
  • 但是如果我删除-l标志,那么同样的命令会返回TEST: hey ,就像我预期的那样

有人可以解释一下这种行为吗? bash的帮助没有...帮助。

-l选项(根据手册页 )使“bash表现为好像它已被作为登录shell调用”。 登录shell从主目录中读取某些初始化文件,例如.bash_profile 由于您在.bash_profile设置了TEST的值,因此在bash启动时会覆盖您在命令行上设置的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM