si no, sintaxis de declaración bash

si no, sintaxis de declaración bash

Entonces, por alguna razón, siempre devuelve ssh u 'ok' independientemente de cómo modifique la declaración de prueba y no tengo idea de qué hacer. Dejé el código a continuación.

echo 'Wanna connect to the raspberry pi? (y/n)'
read $sssh

if [[ $sssh == "y" ]]
then 
        ssh [email protected]
else 
        echo 'ok'
fi

Respuesta1

La readutilidad espera el nombre de una variable como argumento. Con read $sssh, le das el valor de la ssshvariable en lugar del nombre de una variable.

Supongo que querrías leer la ssshvariable, en cuyo caso deberías haber usado read sssh.

Su script modificado (que incorpora un bucle de lectura que se itera hasta que el usuario proporciona una entrada válida):

#!/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

o más largo,

#!/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

información relacionada