我有一个将字符串打印到终端的脚本,我想检查myScript
输出的值。(在本例中resultString
)
我尝试过这个方法,但没有成功。
(为了简单起见,我用以下内容替换了我的脚本,echo something
因此输出是'something'
在这种情况下。)
echo something |
if test - = something
echo true
else
echo false
end
# this prints the false while it should be true!
还尝试将输出设置为变量,但也不起作用。
echo something |
set x -;
if test $x = something
echo true
else
echo false
end
# this prints the false while it should be true!
答案1
test
并且set
不明白这-
意味着“从标准输入读取”。改用read
:
echo something |
read x
if test "$x" = something
echo true
else
echo false
end
答案2
我不是 100% 确定,但我不认为这些命令set
可以if
从标准输入获取输入。
我抬头看着https://github.com/fish-shell/fish-shell/issues/6173
而且似乎test
有点奇怪fish
。我无法解决这个问题。然而这有效。
if /usr/bin/test (someCommand) = "hello"
echo t
else
echo f
end
在 bash 中是这样的
if test "$(someCommand)" = "hello"
then
echo t
else
echo f
fi
一定有更好的答案。但这有效。