某些命令在 bash 脚本中不起作用

某些命令在 bash 脚本中不起作用

我使用的是 Ubuntu 14.04.02 32 位。

在进行一些 shell 编程时,我发现通过 sh 命令运行脚本有时会导致错误。

是因为 sh 命令调用的是 dash shell 而不是 #!/bin/bash 吗?

我在使用 select 命令时遇到问题。

当我通过./scriptName.sh执行它时一切顺利,但是sh scriptName.sh报告语法错误。为什么会发生这种情况?

答案1

如果您的脚本使用 bash 语法,则它必须以#!/bin/bash.如果你执行它,/path/to/script那么一切都会好起来的。如果您显式调用解释器(shell),那么您需要调用正确的解释器,即bash,not shorperl或其他什么。

有多种变体sh。巴什就是其中之一。达世币是另一个。与 bash 相比,dash 功能较少,但速度更快且占用内存更少。这就是为什么 Ubuntu 选择使用破折号作为sh;如果您需要 bash 的额外功能,那么无论如何您都应该显式调用它。

相关内容