leoCCB
(usa Slackware)
Enviado em 29/11/2025 - 11:58h
removido escreveu:
boa tarde galera!
estou estudando shell script, estou empacado em chaves flags... por mais que leio e re-leio o livro shell script profissional no aurelho, eu não consigo entender direito, achei confuso e nada simples sua didatica.
bom, chega de lero lero:
#!/bin/bash
KEY_TRUE=1
KEY_FALSE=0
flag=$KEY_FALSE
VERSION=0.1
HELP="
-h => help
-u => users
-v => version
"
USERS=$(cat /etc/passwd | cut -d : -f 1 | sort)
case $1 in
-v) flag=$KEY_TRUE ;;
-h) flag=$KEY_TRUE ;;
-u) flag=$KEY_TRUE ;;
*) echo "que?"
esac
if[ $flag -eq $KEY_TRUE ]; then
não consigo prosseguir com o código!
podem me dar uma força aí?
maninho, o comando case tem a estrutura
case $Variave in
padrão1 ) comando1
comando2
comandoN ;;
padrão2) comando1
comando2
comandoN
esac
e vc não deu comando nenhum, vc apenas fez uma atribuição de variáveis. Para que atribua, coloque o dois ponto : que é um comando que não faz nada mas permite que a linha seja processada
v) : flag=$KEY_TRUE ;; # por exemplo
e ainda ali no final a estrutura if não está fechada (fi) e o then está em branco... ou seja, se for verdade, .... dá branco no seu programa kkkkkk. Difícil ajudar sem saber de fato o que vc quer q o script faça!! e para flags a melhor opção é o getopts... acho que é isso que vc quer.
por exemplo, para exibir a mensagem de ajuda
MeuScript -h
em case h) deveria ser
case $1 in
h) echo $HELP
esac
e para exibir o usuário
MeuScript -u
case $1 in
u) echo $USERS
esac
por aí kkkkkk
mas aprenda aí com o getopts...