如果我当前的 shell 是 tcsh shell(通过 >echo $shell
和 >ps $$
等确认),我是否必须编写像 这样的 shebang >#! bin/tcsh
并且只有这种脚本才能正常运行?
我用 sh shebangs 制作了脚本 #! bin/sh
并且它们运行正常,尽管我的 shell 始终是 tcsh shell。我的脚本有 for 循环,在 sh 和 tcsh 中是不同的。
我是否需要将当前的 tcsh shell 更改为 sh shell 才能使用 sh shebangs 运行脚本? 有什么帮助吗? 谢谢!
最佳答案
如果你的 shebang 行实际上是 #! bin/sh
那么它们正常工作的原因是因为该路径不存在,并且您当前的 shell 正在接管脚本的运行。
将 shebang 行中的路径修复为有效的绝对路径#!/bin/sh
,我希望您会看到脚本开始失败。
参见http://www.in-ulm.de/~mascheck/various/shebang/了解有关您可能关心的 shebang 系列的更多信息。
关于shell - Shebang 与当前 shell 的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25910985/