msoliver
(usa Debian)
Enviado em 10/02/2017 - 17:01h
yuttttttt escreveu:
msoliver escreveu:
Funcionou aqui . . .
#!/bin/bash
CASE=$(n=0;echo 'case $resposta in' ;for op in $(ls -1);do let n++; printf "%02d) ls -l %s ;;\n" $n $op ;done;echo -e "*) AJUDA ;;\nesac\n")
C="\x1B[0;38;5;156m"
F="\x1B[m"
INICIO() {
read -p " ESCOLHA UMA OPÇãO: " resposta
eval $(echo "$CASE")
}
AJUDA() {
echo -e "\n$C OPÇãO INVáLIDA$F\n"
}
INICIO
marcelo oliver
Cara assim deu certo, me explique esse %02d, o que é? e também se eu colocar %01d vai para uma casa, e se chegar em 10? como o bash tratará isso?
Justamente, o printf "%02d" 5
05
Imprime o nº com dois digitos . . .
Para ignorar o Nº de digitos, use o formato %s,
printf "%s" 5
5
SEpreferir, substitua o "printf" pelo "echo":
CASE=$(n=0;echo 'case $resposta in' ;for op in $(ls -1);do let n++; echo "$n) ls -l $op ;;\n";done;echo -e "*) AJUDA ;;\nesac\n")
Precisando, estou por aqui . . .
Se a resposta foi satisfatória/esclarecedora, . . . MARQUE o tópico como resolvido, e, se gostou da minha "solução", Marque a minha resposta como a melhor . . . . Dessa forma sou pontuado, o que incentiva a continuar compartilhando o conhecimento . . .
Att.:
marcelo oliver.