물고기로 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!

또한 출력을 변수로 설정하려고 시도했지만 그 중 하나도 작동하지 않았습니다.

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

더 나은 대답이 있어야합니다. 하지만 작동합니다.

관련 정보