我试图执行一个包含 shell 脚本的文件。
我在最后一行收到一个名为“[[: not found”的错误。如何解决?
[[
是bash
。sh
想要[
变种。
要么将其更改为/usr/bin/bash
(或 bash 位于系统上的任何位置),要么相应地调整表达式:
if [ status_of_job -eq 0 ];
[
实际上是linux中的可执行文件。但[[
不是。
尝试
if [ status_of_job -eq 0 ]; then
(注意单[]
组)。
这个翻译:
#!/usr/bin/sh
要么不是bash
,要么您的文件在正确的位置没有shebang。
ls -l /usr/bin/sh
会告诉你它是否是 bash 以外的符号链接。
如果是bash
,则检查 . 之前是否没有前导字符#!
。
稍后您可能会发现与 POSIX shell 相关的问题遇到其他问题。直到它被拿走,人们才真正了解 bash 实际提供了多少。看看这个,这样你就可以避免任何其他问题:
http://pubs.opengroup.org/onlinepubs/7908799/xcu/shellix.html