Erro shell script [RESOLVIDO]

1. Erro shell script [RESOLVIDO]

carlos eduardo da silva braga
cadu405

(usa Outra)

Enviado em 12/05/2020 - 17:44h

Boa tarde!
Fiz um script para adicionar usuários em meu sistema,porém eles está apresentando um erro .

#!/bin/bash
echo "digite o nome para seu usuario"
read newusr
list=$(grep $newusr /etc/passwd)

if [ $newusr = list ] then
echo $newusr
echo "usuário ja cadastrado"
else
echo "digite o grupo para esse usuario"
read grup
adduser -m -d /home -g $grup $newusr
fi



o erro: EXERCICIO6: 9: EXERCICIO6: Syntax error: "else" unexpected (expecting "then")



  


2. Re: Erro shell script

Matheus
pylm

(usa Gentoo)

Enviado em 12/05/2020 - 19:15h


#!/bin/bash
echo "digite o nome para seu usuario"
read newusr
list=$(grep $newusr /etc/passwd)

if [ $newusr = list ]; then
echo $newusr
echo "usuário ja cadastrado"
else
echo "digite o grupo para esse usuario"
read grup
adduser -m -d /home -g $grup $newusr
fi


Faltou um ponto e vírgula antes do then.



3. Re: Erro shell script

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 12/05/2020 - 19:31h

#!/usr/bin/env bash
read -p "digite o nome para seu usuario" newusr
list=$(grep $newusr /etc/passwd | cut -d: -f1)

if [ $newusr = $list ]; then
echo $newusr; echo "usuário ja cadastrado"
else
read -p "digite o grupo para esse usuario" grup && adduser -m -d /home -g $grup $newusr
fi
Código mais curto é mais fácil de dar manutenção.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


4. Re: Erro shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/05/2020 - 20:26h

cadu405 escreveu:

Boa tarde!
Fiz um script para adicionar usuários em meu sistema,porém eles está apresentando um erro .

#!/bin/bash
echo "digite o nome para seu usuario"
read newusr
list=$(grep $newusr /etc/passwd)

if [ $newusr = list ] then
echo $newusr
echo "usuário ja cadastrado"
else
echo "digite o grupo para esse usuario"
read grup
adduser -m -d /home -g $grup $newusr
fi
o erro: EXERCICIO6: 9: EXERCICIO6: Syntax error: "else" unexpected (expecting "then")

Boa noite Cadu,
Segue o seu script corrigido:
#!/bin/bash
echo "digite o nome para seu usuário"
read newusr
list=$(grep -o "^\b${newusr}\b" /etc/passwd)

if [ "$newusr" = "$list" ]; then
echo -e "$newusr\nUsuário já cadastrado"
else
echo "digite o grupo para esse usuário"
read grup
adduser -m -d /home -g $grup $newusr
fi

Opção:
#!/bin/bash
read -p "Digite o nome do usuário: " newuser
if grep -q "^\b${newuser}\b" /etc/passwd;then
echo -e "Usuário: ${newuser}\nJá cadastrado"
else
read -p "Digite o grupo do usuário: [${newuser}]: " grupo
adduser -m -d /home -g $grupo $newuser
fi

Obs.:
Não é necessário criar a var list, e depois fazer o condicional,
Assim como outros "comandos", o "grep", permite o condicional...
Note o Uso de bordas "\bbusca\b" no grep, isso evita "casar" palavras semelhantes"

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________