if else bash 語句語法

if else bash 語句語法

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

相關內容