Nota

Nota
#Get client IP base on current logged in user
if [ $USER == 'root' ]
then
    ip="$(last | awk 'NR==1 {print $3}')"
else
    ip="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
fi

/root/.bashrc:157: = no encontrado

Línea 157

ingrese la descripción de la imagen aquí


Nota

Agregué esta línea source ~/.bashrca .zshrcmi

vi .zshrc
source ~/.bashrc  # import all my quick aliases and fns

Respuesta1

En zsh,=cmdes un operador de expansión de nombre de archivo que se expande a la ruta del cmdcomando. =cmdes parecido a $commands[cmd].

Entonces aquí, con ==uno de los argumentos del [comando, eso lo expande a la ruta del =comando. Como no se llama a ningún comando =en su archivo $PATH, eso provoca un error.

Comparar:

$ echo =ls
/bin/ls
$ echo =junk
zsh: junk not found

El operador de igualdad en el [comando es =. El [comando solo realiza pruebas, no realiza ninguna asignación, por lo que no es necesario diferenciar entre un operador de asignación y un operador de comparación de igualdad como ocurre en otros lenguajes (con =vs ==como en C o :=vs =en algunos otros, etc.) .

Entonces debería ser simplemente:

[ "$USER" = root ]

Aún así , [of zsh, al igual que of kshtambién se admite ==como alternativa a =, pero a menos que deshabilites la equalsopción (como en kshla emulación), necesitarás citar al menos el primero =para evitar ese =cmdoperador:

[ "$USER" '==' root ]

Tenga en cuenta que while $USERNAMElo establece automáticamente zsh, $USERno lo es (aunque algunas cosas como ) lo configuran como una variable de entorno login.

Para comprobar si tiene privilegios de superusuario, es más eficaz comprobar que su ID de usuario efectivo sea 0, lo que se puede hacer en zsho bashcon [ "$EUID" -eq 0 ]o (( EUID == 0 )).

Ver también:

Respuesta2

Esta línea no es realmente correcta sintácticamente (pero bashla maneja):

if [ $USER == 'root' ]

Debes usarlo ==solo con [[... ]]y =en caso contrario. También te recomendaría poner comillas dobles $USERsi te quedas con la sintaxis [...]

if [[ "$USER" == 'root' ]]

o

if [ "$USER" = 'root' ]

información relacionada