【问题标题】:Bash: How to compare arguments with if statement?Bash:如何将参数与 if 语句进行比较?
【发布时间】:2012-04-12 14:26:00
【问题描述】:

我正在尝试使用以下代码在 OSX 下比较 bash 中的参数...

 #!/bin/bash

if ["$1" == "1"]
then
        echo $1
else
        echo "no"
fi

但我不断收到以下错误

$bash script.sh 1

script.sh: line 3: [1: command not found
no

如何阻止它尝试评估“1”?

【问题讨论】:

    标签: macos bash shell


    【解决方案1】:

    [ 是测试命令,所以["$1" 之间需要一个空格,"1" 和结束] 之间需要一个空格

    编辑

    澄清一下,需要空格是因为[test bash命令的不同语法,所以下面是另一种脚本的写法:

    #!/bin/bash
    
    if test "$1" == "1"
    then
            echo $1
    else
            echo "no"
    fi
    

    可以进一步简化为

    #!/bin/bash
    [ "$1" == "1" ] && echo "$1" || echo "no"
    

    【讨论】:

    • 打字速度不够快 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多