【问题标题】:Checking the value in the argument passed to a function检查传递给函数的参数中的值
【发布时间】:2013-03-15 10:29:03
【问题描述】:

当我尝试记录参数时,我得到了正确的值。我如何比较参数是否是 csh 脚本中的特定字符串。 bash中对应的代码是什么。

checkstatus()
{
  /bin/echo $1 >> outfile.txt

if ["$1" = "show"]
then
    /bin/echo "it is show" >> outfile.txt
else
    /bin/echo "it is not show" >> outfile.txt
fi
}


checkstatus show

我在输出文件中得到显示,但在 if 条件下出现错误情况。一定是我想念的一个简单的。

【问题讨论】:

    标签: bash shell csh


    【解决方案1】:

    在 bash 中,如果您 (1) 在“[]”括号周围添加一个空格并且 (2) 使用“==”而不是“=”,则它可以工作:

    if [ "$1" == "show" ]
    

    (2) 不是绝对必要的,但更清楚一点,因为“=”通常用作赋值运算符。

    【讨论】:

    • 既然== 放弃了POSIX 合规性,你也可以切换到[[ ... ]],而不是旧式的[ ... ] 表达式。
    猜你喜欢
    • 2022-08-18
    • 1970-01-01
    • 2015-02-21
    • 2020-01-11
    • 1970-01-01
    • 2015-06-09
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多