簡體   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