Bash shebang option -l
问题 I use a script, test.sh , written by someone else, the begins with a bash shebang: #!/bin/bash -l ... echo TEST: $TEST From what I could see, this has an effect on variables used inside the script: if I run TEST=hey ./test.sh , I can see TEST: hop , hop being the value of variable TEST in my .bash_profile this is the same if I export TEST=hey before running the script but if I remove the -l flag, the same command returns TEST: hey , as I would have expected Can someone please explain this