if
다음 표현식이 명령문에서 어떻게 작동하는지 보고 싶다고 가정해 보겠습니다.
[ `ps -p 4800 -o comm=` == "ssh-agent" ]
하지만 저는 이를 위해 특별한 스크립트를 작성하고 싶지 않습니다. 어떤 부울 값을 반환하는지 확인하기 위해 라이브 셸에서 이 명령문을 평가 및/또는 실행할 수 있습니까?
명령줄에 넣으면 맹세합니다.
$ [ `ps -p 4800 -o comm=` = "ssh-agent" ]
-bash: [: =: unary operator expected
$ [ `ps -p 4800 -o comm=` == "ssh-agent" ]
-bash: [: ==: unary operator expected
답변1
아무것도 반환 되지 않으면 ps
첫 번째 문자열이 사라지고 [
두 개의 매개변수만 표시됩니다. 문제를 해결하려면 큰따옴표를 사용하세요.
[ "`ps -p 4800 -o comm=`" = ssh-agent ]
echo $?
$?
조건이 true를 반환하면 0입니다.
ssh-agent
그런데, 특별한 문자가 없기 때문에 큰따옴표가 필요하지 않습니다 .