我试图将参数传递给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
Run Code Online (Sandbox Code Playgroud)
不是预期的结果:
cknight@macbook:~/work$ ./test.sh
0
entered 0
1
entered 0
Run Code Online (Sandbox Code Playgroud)
先感谢您.〜克里斯
您可以return从函数中获得结果,也可以使用它$()来捕获其输出:
if [ $(foo $arg) -eq 0 ] ; then
Run Code Online (Sandbox Code Playgroud)