【问题标题】:Bash shebang option -lBash shebang 选项 -l
【发布时间】:2013-12-28 06:32:27
【问题描述】:

我使用一个脚本,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 的帮助没有...帮助。

【问题讨论】:

    标签: bash shell shebang


    【解决方案1】:

    -l 选项(根据man page)使“bash 像作为登录 shell 被调用一样”。登录 shell 从您的主目录读取某些初始化文件,例如 .bash_profile。由于您在.bash_profile 中设置了TEST 的值,因此当bash 启动时,您在命令行中设置的值将被覆盖。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多