魚でstdoutをテストする

魚でstdoutをテストする

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!

また、出力を変数に設定しようとしましたが、そのうちの1つも機能しませんでした。

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

より良い答えが必要です。しかし、動作します。

関連情報