shell - Shebang 与当前 shell 的关系

标签 shell tcsh shebang

如果我当前的 shell 是 tcsh shell(通过 >echo $shell>ps $$ 等确认),我是否必须编写像 这样的 shebang >#! bin/tcsh 并且只有这种脚本才能正常运行?

我用 sh shebangs 制作了脚本 #! bin/sh 并且它们运行正常,尽管我的 shell 始终是 tcsh shell。我的脚本有 for 循环,在 shtcsh 中是不同的。

我是否需要将当前的 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/

相关文章:

shell - 将包含多个日期记录的 UNIX 文件拆分为每个日期的一个文件

python - 使用curl获取csv的shell脚本

python - 如何编写可以与 swift 可执行文件的输入和输出进行通信的 python 脚本?

redirect - tee stderr 到文件(csh/tcsh shell)

linux - 在 tcsh 脚本中执行别名

linux - 使 perl 脚本可执行...我可以取消前面的 'perl' 语句吗?

linux - 使用 zsh 时如何自动启 Action 业

linux - 复制符号链接(symbolic link)但指向相同的文件(复制)但不同的目标基目录

linux - Shebang 选项 ' #!/bin/csh -f '

python - 从控制台运行 python 脚本时,py 与 python 有什么区别