将参数传递给bash中if语句中的函数

前端之家收集整理的这篇文章主要介绍了将参数传递给bash中if语句中的函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将参数传递给if语句中的函数,然后评估函数返回的内容(在bash中).我得到的结果是不正确的.你怎么做到这一点?
#!/bin/bash

foo() {
    if [ $1 = "zero" ]; then
        echo "0"
    else 
        echo "1"
fi
}

arg="zero"
if foo $arg -eq 0 ; then
    echo "entered 0"
else
    echo "entered something else"
fi

arg="blah"
if foo $arg -eq 0 ; then
    echo "entered 0"
else
    echo "entered something else"
fi

不是预期的结果:

cknight@macbook:~/work$./test.sh
0
entered 0
1
entered 0

先感谢您.
〜克里斯

您可以从函数返回结果,也可以使用$()来捕获其输出
if [ $(foo $arg) -eq 0 ] ; then
原文链接:https://www.f2er.com/bash/383664.html

猜你在找的Bash相关文章