
因此,由於某種原因,無論我如何修改測試語句並且不知道該怎麼做,它總是會傳回 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