如果我想使用非POSIX [[和((我的脚本中的测试表单,我声明我要使用的shell
#!/bin/bash
在我的脚本开头,将直接调用Bash shell来防止使用这些表单时可能出现的任何问题?或者如果找不到hash-bang中引用的shell,会自动使用其他shell吗?
答案 0 :(得分:4)
如果未找到shebang行上指定的可执行文件(未尝试其他可执行文件),Linux和OS X都将拒绝执行该脚本。
您会看到类似/bin/bash: bad interpreter: No such file or directory
的内容,退出代码为127。
但是,一种更便于引用所需shell的方法是按如下方式编写shebang行(例如,bash
):
#!/usr/bin/env bash
这样,只要它在$PATH
。