명령 변수를 기반으로 if 문을 실행하려고 합니다. 예를 들면 다음과 같습니다.
ssh_location=$(which ssh)
내 문제는 이것을 저장하고 싶다는 것입니다오직시스템에 존재하는 경우 추가 처리를 위해 바이너리를 사용할 수 있습니다. 그렇지 않으면 오류 문자열을 에코하고 싶습니다. 이것은 내가 운없이 시도하는 것입니다.
if ["$ssh_location"] ; then
echo "it exists"
else
echo "does not exist"
fi
다음 오류 메시지가 계속 나타납니다.
./test.sh: line 6: [/usr/local/bin/ssh]: No such file or directory
does not exist
(확실히 존재합니다).
답변1
["$ssh_location"]
파일이 있는지 확인하는 대신 존재하지 않는 경로를 사용하여 명령을 실행 하려고 합니다 .
파일이 존재하는지 확인하는 구문은 다음과 같습니다.
if [ -f "$ssh_location" ]
괄호 안에 공백이 없습니다(예, 필수입니다) -f
. 그렇지 않은 경우 -f
명령의 반환 코드를 평가합니다 ssh
.