Questão sobre shell script em concurso

1. Questão sobre shell script em concurso

R. wagner
wagner_guitar

(usa Ubuntu)

Enviado em 01/05/2012 - 10:13h

Galera fiz um concurso que tinha essa questão abaixo, até agora não sei se existe uma resposta certa. Caso exista, alguém pode explicar qual e porque?

Obs: note que começa com $!/bin/bash


Considere um script composto pela seguinte sequência de
comandos:
$ ! /bin/bash
$ variavel="Você está logado como usuário: $user"
$ echo $variavel
É correto afirmar que:
a) o script deve ser lido em /bin, a frase entre aspas será
carregada para a variável e o usuário logado será exibido
pelo comando echo.
b) o script será armazenado em /bin/bash, de onde poderá
ser executado posteriormente.
c) o script deve ser executado pelo bash, que se encontra
em /bin, e a frase entre aspas será exibida junto com o
nome do usuário logado quando o comando echo for
executado.
d) o script deve ser executado pelo bash e o comando echo
exibirá somente o nome do usuário logado.

Vlw ai galera!


  


2. Re: Questão sobre shell script em concurso

Anderson Cordeiro
andersonnf

(usa Debian)

Enviado em 01/05/2012 - 11:17h

Cara, com certeza a letra C é a correta. Veja porque:


"a) O script deve ser lido em /bin " - /bin é um diretório, sendo assim, não é responsável pela execução de scripts

"b) O script será armazenado em /bin/bash " - /bin/bash não é um diretório para o script ficar armazenado, aleḿ disso, não existe nada dizendo onde esse script ficará guardado, e você pode armazená-lo onde quiser pois isso não afetaria seu funcionamento.

"c) O script deve ser executado pelo bash, que se encontra em /bin, e a frase entre aspas será exibida junto com o nome de usuário logado quando o comando echo for executado" - Perfeito, é isso mesmo que ocorre, essa é a resposta correta.

"d) O script deve ser executado pelo bash e o comando echo exibirá SOMENTE o nome do usuário logado" - O comando echo exibirá o conteúdo de $variavel, que recebeu tudo que está entre aspas na linha anterior ao echo

Grande abraço!



3. Re: Questão sobre shell script em concurso

R. wagner
wagner_guitar

(usa Ubuntu)

Enviado em 01/05/2012 - 13:58h

andersonnf escreveu:

Cara, com certeza a letra C é a correta. Veja porque:


"a) O script deve ser lido em /bin " - /bin é um diretório, sendo assim, não é responsável pela execução de scripts

"b) O script será armazenado em /bin/bash " - /bin/bash não é um diretório para o script ficar armazenado, aleḿ disso, não existe nada dizendo onde esse script ficará guardado, e você pode armazená-lo onde quiser pois isso não afetaria seu funcionamento.

"c) O script deve ser executado pelo bash, que se encontra em /bin, e a frase entre aspas será exibida junto com o nome de usuário logado quando o comando echo for executado" - Perfeito, é isso mesmo que ocorre, essa é a resposta correta.

"d) O script deve ser executado pelo bash e o comando echo exibirá SOMENTE o nome do usuário logado" - O comando echo exibirá o conteúdo de $variavel, que recebeu tudo que está entre aspas na linha anterior ao echo

Grande abraço!


Sei não viu!?

Ou então não estou entendendo os $ nas linhas.

eu acho que se ele quiser que a variavel receba um valor, então teria que declarar desta forma:
variavel="Você está logado como usuário: $user"

e não :

$variavel="Você está logado como usuário: $user"

$variavel não seria na hora de chamar a variavel?

e o bash não está em /bin/ , ou seja dentro de um subdiretório em /bin, que seria /bin/<--isso não já diz que é outro diretório??


e outra, na hora de chamar o echo que é um comando interno não precisa do $, desta forma ele estaria chamando uma variavel chamada echo.


e outra para se começar um script não seria #!/bin/bash e não $!/bin/bash??


Vlw pela resposta, mas eu não tenho certeza por estas coisas que mandei agora.


acho que para que a letra C estivesse correta deviria ser assim o script:
#!/bin/bash
variavel="Você está logado como usuário: $user"
echo $variavel

:)


4. Re: Questão sobre shell script em concurso

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/05/2012 - 14:09h

Nenhuma das respostas está totalmente correta.
bash é case sensitive. Logo $user é diferente de $USER que é a variável que armazena o nome do usuário logado.




5. Re: Questão sobre shell script em concurso

Levi Gomes
levi linux

(usa Arch Linux)

Enviado em 01/05/2012 - 14:31h

./.ronin escreveu:

Nenhuma das respostas está totalmente correta.
bash é case sensitive. Logo $user é diferente de $USER que é a variável que armazena o nome do usuário logado.



Ao meu ver nenhuma das respostas está totalmente correta, sem falar que o echo não só vai mostrar o usuário,mas sim a string da variável.


6. Re: Questão sobre shell script em concurso

Anderson Cordeiro
andersonnf

(usa Debian)

Enviado em 01/05/2012 - 17:33h

wagner_guitar escreveu:

andersonnf escreveu:

Cara, com certeza a letra C é a correta. Veja porque:


"a) O script deve ser lido em /bin " - /bin é um diretório, sendo assim, não é responsável pela execução de scripts

"b) O script será armazenado em /bin/bash " - /bin/bash não é um diretório para o script ficar armazenado, ale&#7743; disso, não existe nada dizendo onde esse script ficará guardado, e você pode armazená-lo onde quiser pois isso não afetaria seu funcionamento.

"c) O script deve ser executado pelo bash, que se encontra em /bin, e a frase entre aspas será exibida junto com o nome de usuário logado quando o comando echo for executado" - Perfeito, é isso mesmo que ocorre, essa é a resposta correta.

"d) O script deve ser executado pelo bash e o comando echo exibirá SOMENTE o nome do usuário logado" - O comando echo exibirá o conteúdo de $variavel, que recebeu tudo que está entre aspas na linha anterior ao echo

Grande abraço!


Sei não viu!?

Ou então não estou entendendo os $ nas linhas.

eu acho que se ele quiser que a variavel receba um valor, então teria que declarar desta forma:
variavel="Você está logado como usuário: $user"

e não :

$variavel="Você está logado como usuário: $user"

$variavel não seria na hora de chamar a variavel?

e o bash não está em /bin/ , ou seja dentro de um subdiretório em /bin, que seria /bin/<--isso não já diz que é outro diretório??


e outra, na hora de chamar o echo que é um comando interno não precisa do $, desta forma ele estaria chamando uma variavel chamada echo.


e outra para se começar um script não seria #!/bin/bash e não $!/bin/bash??


Vlw pela resposta, mas eu não tenho certeza por estas coisas que mandei agora.


acho que para que a letra C estivesse correta deviria ser assim o script:
#!/bin/bash
variavel="Você está logado como usuário: $user"
echo $variavel

:)


Veja bem:

Dentre as opções apresentadas, essa é sim a correta.
Não está funcional, mas a idéia está certíssima. Acredito que a questão era ver se você conhecia como funciona. Poderia estar melhor? Poderia... Ao invés do $ na primeira linha, deveria ter # e a variável $USER , como nosso amigo ai em cima disse, deveria ter sido colocada desse jeito (maiuscula).

Agora, existe um espaço entre $ e variavel="Você está logado como usuário: $user".
Também existe um espaço entre $ e echo $variavel.

Então, ele está sim chamando um comando interno e não uma variavel.

E o bash não está em " /bin/ ". Isso não existe.

Ele está em /bin. Essa barra não quer dizer que é um subdiretório.... quer dizer apenas que o bash está dentro de /bin. Exemplo: /bin/bash

Poderia estar melhor, mas entre as questões, as outras tem afirmações completamente erradas. Essa não, portanto, a correta. Tem que marcar uma, não é mesmo?

Abraços




7. Re: Questão sobre shell script em concurso

R. wagner
wagner_guitar

(usa Ubuntu)

Enviado em 01/05/2012 - 22:00h

andersonnf escreveu:

wagner_guitar escreveu:

andersonnf escreveu:

Cara, com certeza a letra C é a correta. Veja porque:


"a) O script deve ser lido em /bin " - /bin é um diretório, sendo assim, não é responsável pela execução de scripts

"b) O script será armazenado em /bin/bash " - /bin/bash não é um diretório para o script ficar armazenado, ale&#7743; disso, não existe nada dizendo onde esse script ficará guardado, e você pode armazená-lo onde quiser pois isso não afetaria seu funcionamento.

"c) O script deve ser executado pelo bash, que se encontra em /bin, e a frase entre aspas será exibida junto com o nome de usuário logado quando o comando echo for executado" - Perfeito, é isso mesmo que ocorre, essa é a resposta correta.

"d) O script deve ser executado pelo bash e o comando echo exibirá SOMENTE o nome do usuário logado" - O comando echo exibirá o conteúdo de $variavel, que recebeu tudo que está entre aspas na linha anterior ao echo

Grande abraço!


Sei não viu!?

Ou então não estou entendendo os $ nas linhas.

eu acho que se ele quiser que a variavel receba um valor, então teria que declarar desta forma:
variavel="Você está logado como usuário: $user"

e não :

$variavel="Você está logado como usuário: $user"

$variavel não seria na hora de chamar a variavel?

e o bash não está em /bin/ , ou seja dentro de um subdiretório em /bin, que seria /bin/<--isso não já diz que é outro diretório??


e outra, na hora de chamar o echo que é um comando interno não precisa do $, desta forma ele estaria chamando uma variavel chamada echo.


e outra para se começar um script não seria #!/bin/bash e não $!/bin/bash??


Vlw pela resposta, mas eu não tenho certeza por estas coisas que mandei agora.


acho que para que a letra C estivesse correta deviria ser assim o script:
#!/bin/bash
variavel="Você está logado como usuário: $user"
echo $variavel

:)


Veja bem:

Dentre as opções apresentadas, essa é sim a correta.
Não está funcional, mas a idéia está certíssima. Acredito que a questão era ver se você conhecia como funciona. Poderia estar melhor? Poderia... Ao invés do $ na primeira linha, deveria ter # e a variável $USER , como nosso amigo ai em cima disse, deveria ter sido colocada desse jeito (maiuscula).

Agora, existe um espaço entre $ e variavel="Você está logado como usuário: $user".
Também existe um espaço entre $ e echo $variavel.

Então, ele está sim chamando um comando interno e não uma variavel.

E o bash não está em " /bin/ ". Isso não existe.

Ele está em /bin. Essa barra não quer dizer que é um subdiretório.... quer dizer apenas que o bash está dentro de /bin. Exemplo: /bin/bash

Poderia estar melhor, mas entre as questões, as outras tem afirmações completamente erradas. Essa não, portanto, a correta. Tem que marcar uma, não é mesmo?

Abraços



Cara desculpe discordar novamente de vc, mas concurso não pode deixar margem para erros, é uma prova que deveria ser séria, pois além de ter que existir alguém capacitado para elaborar passa por revisão.

Na minha opinião deveria ser anulada uma questão assim, isso de ver como funciona não existe, se fosse o caso construísse uma questão assim só de forma correta.


Vlw.



8. Re: Questão sobre shell script em concurso

R. wagner
wagner_guitar

(usa Ubuntu)

Enviado em 01/05/2012 - 22:13h

E até como lembrou o levi linux, para exibir o nome do usuário logado tem que ser $USER e não $user.


Vlw


9. Re: Questão sobre shell script em concurso

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 02/05/2012 - 10:01h

wagner_guitar escreveu:

Galera fiz um concurso que tinha essa questão abaixo, até agora não sei se existe uma resposta certa. Caso exista, alguém pode explicar qual e porque?

Obs: note que começa com $!/bin/bash


Considere um script composto pela seguinte sequência de
comandos:
$ ! /bin/bash
$ variavel="Você está logado como usuário: $user"
$ echo $variavel
É correto afirmar que:
a) o script deve ser lido em /bin, a frase entre aspas será
carregada para a variável e o usuário logado será exibido
pelo comando echo.
b) o script será armazenado em /bin/bash, de onde poderá
ser executado posteriormente.
c) o script deve ser executado pelo bash, que se encontra
em /bin, e a frase entre aspas será exibida junto com o
nome do usuário logado quando o comando echo for
executado.
d) o script deve ser executado pelo bash e o comando echo
exibirá somente o nome do usuário logado.

Vlw ai galera!


Antes de responder vou executar o enunciado kkkk



$ ! /bin/bash
$ variavel="Você está logado como usuário: $user"
$ echo $variavel



ignore $ porque apenas está indicando o prompt de quem digitou.

Se o script inicia com " $ ! /bin/bash " e não com " #!/bin/bash " já começa mal. Deveria ter o sinal de comentário para inibir a saída do comando, mas funciona.

Segunda linha: "$ variavel="Você está logado como usuário: $user"

Não retorna nada porque está sendo feito uma definição de variável. No caso $variavel

Terceira linha: "$ echo $variavel"

Retorna: "Você está logado como usuário:"

Então a resposta correta é: a) Errada. b) Errada. c) Errada. d) Errada e) Nenhuma das alternativas. kkkkkk




10. Re: Questão sobre shell script em concurso

Levi Gomes
levi linux

(usa Arch Linux)

Enviado em 02/05/2012 - 11:28h

AprendiNoLinux escreveu:

wagner_guitar escreveu:

Galera fiz um concurso que tinha essa questão abaixo, até agora não sei se existe uma resposta certa. Caso exista, alguém pode explicar qual e porque?

Obs: note que começa com $!/bin/bash


Considere um script composto pela seguinte sequência de
comandos:
$ ! /bin/bash
$ variavel="Você está logado como usuário: $user"
$ echo $variavel
É correto afirmar que:
a) o script deve ser lido em /bin, a frase entre aspas será
carregada para a variável e o usuário logado será exibido
pelo comando echo.
b) o script será armazenado em /bin/bash, de onde poderá
ser executado posteriormente.
c) o script deve ser executado pelo bash, que se encontra
em /bin, e a frase entre aspas será exibida junto com o
nome do usuário logado quando o comando echo for
executado.
d) o script deve ser executado pelo bash e o comando echo
exibirá somente o nome do usuário logado.

Vlw ai galera!


Antes de responder vou executar o enunciado kkkk



$ ! /bin/bash
$ variavel="Você está logado como usuário: $user"
$ echo $variavel



ignore $ porque apenas está indicando o prompt de quem digitou.

Se o script inicia com " $ ! /bin/bash " e não com " #!/bin/bash " já começa mal. Deveria ter o sinal de comentário para inibir a saída do comando, mas funciona.

Segunda linha: "$ variavel="Você está logado como usuário: $user"

Não retorna nada porque está sendo feito uma definição de variável. No caso $variavel

Terceira linha: "$ echo $variavel"

Retorna: "Você está logado como usuário:"

Então a resposta correta é: a) Errada. b) Errada. c) Errada. d) Errada e) Nenhuma das alternativas. kkkkkk



Explicação perfeita!




11. Re: Questão sobre shell script em concurso

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/05/2012 - 18:19h


Os caracteres $ e #, normalmente, indicam linhas do prompt de comando onde:
$ - qualquer usuário normal
# - o super usuário, root

Não confudir com um shell script que são comando escritos em um arquivo texto que no mínimo devem ter permissão de leitura.

E a variável que contém o nome do usuário atual é $USER e não $user, pois a shell é case sensitive, a menos que você tenha setado assim: user=$USER

Logo nenhuma está correta...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts