是否必须使用#/bin/bash甚至在bash子shell中
如果在登录到我的系统后,我键入:bash(使用bash subshell),然后尝试运行bash脚本(例如example.sh),那么如果我不放#有关系吗/bin/bash作为脚本的第一行,或者它很好,因为我已经在bash子shell中了?我不知道,当您尝试它时会发生什么?@sumneevans,鼓励尝试并查看在shell世界中并不一定是一个好的实践——运行时行为取决于一组变量,因此,当一个简单的测试有严重的警告,但该测试无法发现时,人们很容易根据该测试判断一个实践是安全的。@mjm,…例如,一个不太明显的例子:如果运行是否必须使用#/bin/bash甚至在bash子shell中,bash,Bash,如果在登录到我的系统后,我键入:bash(使用bash subshell),然后尝试运行bash脚本(例如example.sh),那么如果我不放#有关系吗/bin/bash作为脚本的第一行,或者它很好,因为我已经在bash子shell中了?我不知道,当您尝试它时会发生什么?@sumneevans,鼓励尝试并查看在shell世界中并不一定是一个好的实践——运行时行为取决于一组变量,因此,当一个简单的测试有严重的警告,但该测试无法发现时,人们很容易根据该测试判断一个实践是安全的。@mjm,…例如,一
find-exec./otherscript{}+
,otherscript
的执行将在没有shebang的情况下彻底失败,无论shell启动什么find
。我不知道,当您尝试时会发生什么?@sumneevans,鼓励您尝试并查看在shell世界中不一定是一个好的实践——运行时行为取决于一系列变量,因此,当一个简单的测试有严重的警告,但该测试无法发现时,人们很容易根据该测试判断一个实践是安全的。@mjm,…例如,一个不太明显的例子:如果运行find-exec./otherscript{}+
,执行otherscript
时,无论shell启动什么find
,都会在没有shebang的情况下彻底失败。