
따라서 어떤 이유로 테스트 문을 어떻게 수정했는지에 관계없이 항상 ssh 또는 'ok'를 반환하고 무엇을 해야할지 모릅니다. 아래 코드를 남겼습니다.
echo 'Wanna connect to the raspberry pi? (y/n)'
read $sssh
if [[ $sssh == "y" ]]
then
ssh [email protected]
else
echo 'ok'
fi
답변1
유틸리티 read
는 변수 이름을 인수로 예상합니다. 를 사용하면 변수 이름 대신 변수 read $sssh
값을 제공합니다 .sssh
나는 당신이 변수를 읽고 싶다고 가정하고 있습니다 sssh
. 이 경우에는 read sssh
.
수정된 스크립트(사용자가 유효한 입력을 제공할 때까지 반복하는 읽기 루프 통합):
#!/bin/bash
while true; do
read -p 'Connect to RPi? (y/n): ' yesno
case $yesno in
y) ssh ...; break ;;
n) echo ok; break ;;
*) echo invalid input >&2
esac
fi
또는 더 이상,
#!/bin/bash
while true; do
read -p 'Connect to RPi? (y/n): ' yesno
if [[ $yesno == 'y' ]]; then
ssh ...
break
elif [[ $yesno == 'n' ]]; then
echo ok
break
fi
echo invalid input >&2
fi