따라서 어떤 이유에서인지 테스트 문을 어떻게 수정하고 무엇을 해야 할지 모르더라도 항상 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