Shell-Script
用fish測試標準輸出
我有一個將字元串列印到終端的腳本,我想檢查
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!
test
並且set
不明白這-
意味著“從標準輸入讀取”。改用read
:echo something | read x if test "$x" = something echo true else echo false end
我不是 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
一定有更好的答案。但這有效。