我有以下代码段,其中函数test
回显false
。我在if
语句中使用带有shell替换的回显值:
#!/usr/bin/env bash
test () {
echo "false"
}
if [[ "$(test)" -eq "true" ]]
then
echo hello world
fi
我希望上面的不打印hello world
,因为我认为这最终会说[[ "false" -eq "true" ]]
。
然而,当我运行脚本时,它回显hello world
。
答案 0 :(得分:0)
如果test
为-eq
,您会发现-gt
,-lt
和if [ 0 -gt 1 ];
测试条件仅适用于数值。
INTEGER1 -eq INTEGER2
INTEGER1等于INTEGER2
即,=
对于bash中的字符串比较,只需使用if [[ "$(test)" = "true" ]]
。
尝试使用
python script.py $arg1 $arg2
这将为您提供预期的行为。
答案 1 :(得分:0)
试试这个
#!/usr/bin/env bash
test () {
echo "false"
}
if [[ "$(test)" = "true" ]]
then
echo hello world
fi