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

관련 정보