alfanumericos seriam os caracters [a-zA-Z0-9] o case do bash aceita outros caracteres e ate numeros, porem deve trata-los como sendo sempre strings, achei um pouco confuso, talvez o Julio explique melhor.
agora, a questão 2 não pode ser a letra a. qual shell possui a palavra reservada endfor ? isso tem cheiro de perl (ou make)... essa questão ja tem um jeito de 'pega-ratão', pois se houver um arquivo cujo nome é não ortodoxo como -e , -n , -l (quem sabe ? ou * tambem) o script não funcionaria como o esperado. é claro que existe uma liberdade poética ao achar que os nomes dos arquivos nesse diretorio nem espaço em branco devem conter (o que seria solucionado com um ls -Q para deixar entre aspas cada nome de arquivo). agora endfor em shell pra mim é novidade. []´s Tiago On 4/18/07, amaurimarx <[EMAIL PROTECTED]> wrote: > > Galera, bom dia!!! > Muito obrigado pelos comentários de todos... > > A resposta correta (conforme gabarito oficial) da questão 1 é a letra > c e da questão 2 é a letra a. Parabéns Daniel, você iria acertar as > duas, porém eu não posso deixar de concodar com os colegas Daniel > Henrique e Tiago Barcellos que no bash ambas as letras b e c iriam > funcionar. > Já na questão 1 não faço a mínima idéia, também chutei a questão e, > pois pelo que sei o bash aceita caracteres como ` $ " no case, então > acreditei que não teria restrições, porém não achei em nenhum lugar > alguma informação que comprovasse que o case no bash somente aceita > literais alfanuméricos (aliás, nem sei o que é isso... sei que > alfanuméricos é de a-z e A-Z, alguém poderia explicar?). > > Abraço a todos! > Amauri > > --- Em [email protected] <shell-script%40yahoogrupos.com.br>, > Daniel Henrique Angst > <[EMAIL PROTECTED]> escreveu > > > > > Amauri, na questão 2 não tenho dúvidas que é a letra c é a correta, > > nenhuma das outras opções está correta, pois: > > > > alt. a ) Exibe os arquivos, apesar do "endfor", que o shell processa > > como sendo um comando e dá erro dizendo que não existe; > > alt. b) a sintaxe do "$(ls)" está errada. > > alt. c) sintaxe correta > > alt. d) mesma coisa que a alt. b, sintaxe errada, não exibe nada e o > > "rof" o shell processa como sendo um comando e dá erro que não existe > > alt. e) a sintaxe está errada no $N > > > > Sem dúvida, apenas a c está correta. > > > > Na 1, até aonde eu sei, apenas caracteres alfanumericos podem ser > > utilizados, portanto diria que a alt. "a" é a correta. > > > > > > É isso ai. > > > > amaurimarx wrote: > > > > > > Boa tarde galera... > > > > > > Tenho 2 questões que caiu no concurso do Tribunal de Justiça do RS e > > > acredito que no gabarito saiu a resposta errada, porém antes de > > > qualquer interpretação estou encaminhando pra esta lista de discussão > > > que eu sei que tem gente que manja muito (inclusive se o Júlio Cezar > > > Neves puder dar seu parecer, ficaria muito grato). Em uma próxima > > > mensagem mando o resultado das questões, mas já antecipo que para mim > > > as respostas b e c da questão 2 estão corretas. > > > > > > Obs.: Peço desculpas se este assunto foge ao escopo da lista, mas > > > acredito que é bom para o entendimento de todos. > > > > > > Segue as questões: > > > > > > 1) Em um shell script usando bash, que tipo de dado pode ser utilizado > > > como padrão de seleção no comando "case"? > > > a) Literais alfanuméricos > > > b) Apenas números > > > c) Variáveis do tipo string > > > d) Resultado de uma expressão aritmética > > > e) Qualquer tipo de dado existente no bash > > > > > > 2) Qual dos trechos de shell script abaixo lista os nomes dos arquivos > > > presentes no diretório de execução do shell? > > > a) for N in `ls`; do echo $N; done; endfor > > > b) for N in $(ls); do echo $N; done > > > c) for N in `ls`; do echo $N; done > > > d) for N in [ls]; do echo $N; done; rof > > > e) for $N in `ls`; do echo N; done > > > > > > Desde já agradeço a todos, > > > Amauri > > > > > > > > > > > -- Tiago B Peczenyj Linux User #405772 # cd /pub # more beer [As partes desta mensagem que não continham texto foram removidas]
