5

我试图执行一个包含 shell 脚本的文件。

我在最后一行收到一个名为“[[: not found”的错误。如何解决?

4

4 回答 4

7

[[bashsh想要[变种。

要么将其更改为/usr/bin/bash(或 bash 位于系统上的任何位置),要么相应地调整表达式:

if [ status_of_job -eq 0 ];
于 2013-06-24T17:18:12.103 回答
5

[实际上是linux中的可执行文件。但[[不是。

尝试

if [ status_of_job -eq 0 ]; then 

(注意单[]组)。

于 2013-06-24T17:17:48.913 回答
2

这个翻译:

#!/usr/bin/sh

要么不是bash,要么您的文件在正确的位置没有shebang。

ls -l /usr/bin/sh会告诉你它是否是 bash 以外的符号链接。

如果是bash,则检查 . 之前是否没有前导字符#!

于 2013-06-24T17:19:53.527 回答
0

稍后您可能会发现与 POSIX shell 相关的问题遇到其他问题。直到它被拿走,人们才真正了解 bash 实际提供了多少。看看这个,这样你就可以避免任何其他问题:

http://pubs.opengroup.org/onlinepubs/7908799/xcu/shellix.html

于 2013-07-05T12:15:38.417 回答