bash - 通过命令退出代码打印不同的消息

标签 bash exit-code

所以我的 .sh 文件中有这个:

#!/bin/bash

echo "Building Space Cubes X for Mac...."
make OS=APPLE -k

if [$? -eq 0]
then
    echo "Build completed."
    echo "You can find the build under (THIS_FOLDER)/bin/build."
else
    echo "Build failed! Check above for error messages!"
fi

问题是,bash 打印了这条我什至不明白的消息:

./build-mac.sh: line 7: [0: command not found

感谢任何帮助或建议!

我在 Mac 上运行 Bash。

最佳答案

您需要在方括号周围的 if 行上添加额外的空格。将代码更改为:

if [ $? -eq 0 ]

需要这样做的原因是 [ 本身就是一个命令(*nix 上 test 的同义词),并且您需要执行 [ 命令不是(不存在的)[$? 命令。

关于bash - 通过命令退出代码打印不同的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001778/

相关文章:

linux - 从 bash 中的对话框中读取的变量中的额外引号

hadoop - TestDFSIO 失败,退出代码为 -1000

java - 如何从 Java 中运行的进程中获取 bash 命令退出代码?

bash - 如何在 Bash 中测试命令的非零退出状态?

powershell - 使用正确的退出代码报告从 PowerShell 调用批处理文件,同时避免插入符号加倍

c - 退出状态是可观察的行为吗?

bash - 我的bash脚本: var=(command1 | command2)?有什么问题

linux - 编写脚本以获取用户输入并使用错误检查来测试是否输入了两个参数 : Linux

linux - 是否可以制作一个考虑新文件并创建它们的补丁文件?

json - 解析错误 : Invalid numeric literal at line 1, 第 2 列 (bash)