SóProvas



Questões de Shell script


ID
27787
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2006
Provas
Disciplina
Programação
Assuntos

Na linha de comandos de um shell do sistema operacional Linux, um usuário emitiu com sucesso o seguinte comando:

lp meutexto.txt &

O sinal & indica que o comando deve ser executado:

Alternativas
Comentários
  • Resposta certa: letra a.

    Se qualquer comando em Linux tiver um & no final (formato mais usado), ele será executado em segundo plano e o prompt de comandos continua disponível para o usuário executar outros comandos.
  • equivale a bg&processo


ID
32689
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2008
Provas
Disciplina
Programação
Assuntos

Para os recursos e características dos scripts shell no UNIX, é INCORRETO afirmar que

Alternativas
Comentários
  • a : exibe todas as configurações atuais do terminal.

    -g : exibe todas as configurações atuais do terminal em um formato que pode ser usado como argumento para outro comando stty para restaurar as configurações atuais.

    sane : restaura a configuração padrão no terminal.

  • O comando stty seja usado sem nenhum argumento, o sistema informa a velocidade de comunicação e os parâmetros de linha que são diferentes dos valores configurados por stty sane.
  • O comando stty exibe informações sobre a comunicação do terminal.

    Um exemplo:
     speed 38400 baud; line = 0;
     eol = M-^?; eol2 = M-^?; swtch = M-^?;
     ixany iutf8

    Fonte:http://www.uniriotec.br/~morganna/guia/stty.html



ID
47041
Banca
ESAF
Órgão
ANA
Ano
2009
Provas
Disciplina
Programação
Assuntos

Se a variável de ambiente PATH, considerando o Bash Shell, contém inicialmente /bin:/usr/bin:/usr/X11R6/bin, após a execução do comando $ export PATH = $PATH:/usr/local/bin, o valor da variável PATH será

Alternativas
Comentários
  • Concordo plenamente com você Gilberto.
  • Também concordo com vocês.
  • O correto é a letra B. Lembrando da forma que eles colocaram o comando com espaços no sinal "=" para atribuição o comando não executaria devido a erros. O correto seria retirar os espaços ficando dessa forma: export PATH=$PATH:/usr/local/bin
  • Veja o exemplo abaixo retirado do site http://www.inf.ufpr.br/nicolui/Docs/Livros/LinuxBasico/LinuxBasico-node47.html
     

    $echo $PATH/bin:/usr/bin:/usr/local/bin
    Caso o usuário joao queira adicionar um outro diretório, digamos /home/joao/bin à variável PATH, deve proceder como mostrado a seguir:
    $ export PATH=$PATH:/home/joao/bin              # adiciona o diretório$ echo $PATH                                    # verifica/bin:/usr/bin:/usr/local/bin:/home/joao/bin

    O primeiro comando faz com que a variável receba o seu valor atual, concatenado com o nome do diretório a ser acrescentado. Observe que existe um ``:'' antes do nome do diretório. O segundo comando é utilizado apenas para visualizarmos o resultado do primeiro.


ID
140425
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2009
Provas
Disciplina
Programação
Assuntos

Com relação a linguagens de programação, julgue o item abaixo.

A instrução test expression OR [expression] no shell bash do sistema operacional Linux funciona com inteiros, arquivos e strings. Por exemplo, uma linha dentro de um arquivo que contenha a instrução if test $ 1 -gt 0 segue a sintaxe correta.

Alternativas
Comentários
  • A sintaxe correta é:
    if test $1 -gt 0

    Sem o espaço
  • Vejo que esse erro da banca de botar espaço entre $ e o nome da variável é constante, não sei qual o problema deles na hora de imprimir.
    Deixando isso de lado e ignorando isso,  a sintaxe está correta. test é um comando para fazer comparações e aceita o formato "inteiro -gt inteiro". ele equivale a usar os colchetes, ou seja "if [test $1 -gt 0]"
  • Fiz o teste com e sem o espaço no bash e não retornou nenhum erro. Alguém sabe dizer por que?


ID
149818
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Programação
Assuntos

Acerca das aplicações de informática, julgue os itens a seguir.

Um arquivo shell script pode ser usado quando a sequência de comandos que se necessita repetir com frequência pode ser colocada em um arquivo que, ao ser executado, ocasiona o disparo de cada um dos comandos da sequência, na ordem indicada.

Alternativas
Comentários
  • Shell Script é uma poderosa ferramenta de automação de instruções. Com um arquivo de texto executável o usuário ou sistema é capaz de executar uma seqüência de operações, instruções e testes.

  •  Questão correta.

     

    Um script desenvolvido em Shell executa uma sequência de comandos inseridos em um arquivo com a extensão .sh na ordem indicada.

  •    Embora não tenha tanto conhecimento no assunto, fui pela dedução e pela forma como foi proposta a questão, pude acertar e parabenizo a mesma.

ID
240772
Banca
FCC
Órgão
TRT - 8ª Região (PA e AP)
Ano
2010
Provas
Disciplina
Programação
Assuntos

A variável $# indica num script Bourne Shell

Alternativas
Comentários
  • A variável $#:
    "É uma variável que contém a contagem de argumentos, além do próprio comando.

    Fonte: http://0e1.org/Dicas_de_boas_praticas_de_programacao_shell/ 
  •     a) o número de argumentos passados na linha de comando. ($#)

        b) todos os argumentos passados na linha de comando. ($*)

        c) o nome pelo qual o programa foi invocado. ($0)

        d) o último argumento passado na linha de comando. (Não há expressão padrão, deve iterar sobre toda a lista)

        e) o número de identificação do processo aberto para execução do script. ($$)
  • $# n° de argumentos command-line que são dados.

    http://www.ooblick.com/text/sh/

ID
290470
Banca
UNIRIO
Órgão
UNIRIO
Ano
2009
Provas
Disciplina
Programação
Assuntos

Dado o script Shell abaixo, gravado num arquivo executável,

#!/bin/bash

cd /tmp

find . -type f -atime +60 -print

O efeito da sua execução no prompt de comandos do Linux pelo administrador do sistema é

Alternativas

ID
457087
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

A respeito de linguagens de scripts para diferentes ambientes de
sistemas operacionais, julgue os itens seguintes.

É recomendado que os scripts do tipo Bourne devam começar com a seqüência #!/bin/sh em que o trecho /bin/sh é o nome do programa que será utilizado para interpretar os conteúdos do arquivo.

Alternativas
Comentários
  • Correto, tem que indicar o interpretador a ser utilizado. 
  • na minha opnião está errado

    RECOMENDADO

    NÃO SERIA NECESSÁRIO?


ID
457090
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

A respeito de linguagens de scripts para diferentes ambientes de
sistemas operacionais, julgue os itens seguintes.

É recomendado que todos os scripts tenham uma especificação de caminho de busca, por exemplo PATH=/usr/ucb:/usr/bin:/bin; export PATH. O Bourne Shell tem como padrão exportar variáveis de ambiente para scripts filhos. Nesse caso, a utilização do comando export não é necessária para este efeito.

Alternativas
Comentários
  • Errado. Nâo precisa exportar o path em cada script, pois o path é uma variável de ambiente no sistema operacional, uma variável global vamos dizer assim. 

ID
457093
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

A respeito de linguagens de scripts para diferentes ambientes de
sistemas operacionais, julgue os itens seguintes.

No Bourne Shell, os descritores de arquivo 0, 1 e 2 correspondem à entrada padrão, à saída padrão e ao erro. O stderr deve ser utilizado para os erros.

Alternativas

ID
457099
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

A respeito de linguagens de scripts para diferentes ambientes de
sistemas operacionais, julgue os itens seguintes.

O PowerShell é uma linguagem de programação interativa que visa substituir os arquivos de lote (.bat) do Windows. Consiste de um programa interpretador de comandos que possui diversos recursos e que permite acessar componentes .NET.

Alternativas
Comentários
  • Microsoft Windows PowerShell é um novo prompt de comando do Windows, muito mais poderoso que o cmd.exe, voltado à automatização, via scripts e canalização de objetos por uma sequência de comandos, para manutenção de sistemas por parte de administradores, além de um controle maior do sistema. O Windows PowerShell fornece acesso à todas as APIs .NET disponíveis no sistema, além dos objetos COM, e outras APIs Microsoft.[1] Atualmente os produtos Server da Microsoft devem fornecer suporte à automatização via PowerShell, segundo seu Common Engineering Criteria. O Windows PowerShell é integrado como componente opcional do Windows Server 2008, habilitado por padrão no Windows Server 2008 R2 (exceto instalação core), Windows 7 e Windows 8, e pode ser baixada gratuitamente para instalação em Windows XP SP2, Windows Vista e Windows Server 2003.
  • Na minha opinião, o gabarito deveria ser "E". Powershell não é uma linguagem de programação, como afirma a assertiva. Alguém comenta?

  • Alguns autores[1][2][3] afirmam que powershell é uma linguagem (de script). Questão certa.

    Fontes:

    [1] Windows PowerShell: TFM, Don Jones, Jeffery Hicks

    [2] Windows PowerShell Quick Reference, Lee Holmes

    [3] Pro Windows PowerShell, Hristo Deshev


ID
608866
Banca
CONSULPLAN
Órgão
SDS-SC
Ano
2008
Provas
Disciplina
Programação
Assuntos

Que parâmetro devemos usar dentro de um Shell script para saber quantos parâmetros foram passados pela linha de comando?

Alternativas
Comentários
  • Letra B.

    Vejamos
    A) $$ - PID do Shell
    B) $# - Número de argumentos 
    C) $0 - Nome do script que está sendo executado.
    D) $@ - Todos os argumentos do shell 
    E) $! - PID do último processo em background iniciado ( quando usado &)

ID
661633
Banca
FCC
Órgão
TRE-CE
Ano
2012
Provas
Disciplina
Programação
Assuntos

O comando de shell script df em Linux exibe informações de espaço em disco das unidades de armazenamento. Para exibir informações das unidades com este comando, com descrição de mais fácil entendimento e tamanho definido em função de potencias de 1000 bytes, é necessário utilizar o argumento

Alternativas
Comentários
  • Cuidado com a sacanagem! É 1000 e não 1024, portanto é -H ao invés de -h.

    Segue manpage do df para consulta:

    NAME

    df - report file system disk space usage

    SYNOPSIS

    df [OPTION]... [FILE]...

    DESCRIPTION

    This  manual  page  documents  the  GNU version of df.  df displays the       amount of disk space available on the file system containing each  file       name  argument.	 If  no file name is given, the space available on all       currently mounted file systems is shown.	 Disk space  is	 shown	in  1K       blocks  by  default, unless the environment variable POSIXLY_CORRECT is       set, in which case 512-byte blocks are used.       If an argument is the absolute file name of a disk device node contain-       ing  a  mounted	file system, df shows the space available on that file       system rather than on the file system containing the device node (which       is  always  the	root file system).  This version of df cannot show the       space available on unmounted file systems, because  on  most  kinds  of       systems	doing  so requires very nonportable intimate knowledge of file       system structures.

    OPTIONS

    Show information about the file system on which each FILE  resides,  or       all file systems by default.       Mandatory  arguments  to	 long  options are mandatory for short options       too.       -a, --all	      include dummy file systems       -B, --block-size=SIZE use SIZE-byte blocks       -h, --human-readable	      print sizes in human readable format (e.g., 1K 234M 2G)       -H, --si	      likewise, but use powers of 1000 not 1024       -i, --inodes	      list inode information instead of block usage       -k     like --block-size=1K       -l, --local	      limit listing to local file systems       --no-sync	      do not invoke sync before getting usage info (default)       -P, --portability	      use the POSIX output format       --sync invoke sync before getting usage info       -t, --type=TYPE	      limit listing to file systems of type TYPE       -T, --print-type	      print file system type       -x, --exclude-type=TYPE	      limit listing to file systems not of type TYPE       -v     (ignored)       --help display this help and exit       --version	      output version information and exit       SIZE may be (or may be an integer optionally followed by) one  of  fol-       lowing: kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T,       P, E, Z, Y.
  • Caramba, sacanagem mesmo, apenas para complementar o colega abaixo, segue os argumentos possiveis do comando df:

    Mandatory arguments to long options are mandatory for short options too.
      -a, --all             include dummy file systems
      -B, --block-size=SIZE use SIZE-byte blocks
      -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
      -H, --si              likewise, but use powers of 1000 not 1024
      -i, --inodes          list inode information instead of block usage
      -k                    like --block-size=1K
      -l, --local           limit listing to local file systems
          --no-sync         do not invoke sync before getting usage info (default)
      -P, --portability     use the POSIX output format
          --sync            invoke sync before getting usage info
      -t, --type=TYPE       limit listing to file systems of type TYPE
      -T, --print-type      print file system type
      -x, --exclude-type=TYPE   limit listing to file systems not of type TYPE
      -v                    (ignored)
    

  • Quero saber em que isso vai fazer de diferença para exercer o cargo, kkkk. a FCC não tem mais o que cobrar e fica cobrando esse tipo de questão, pra sacanear os concursandos, srssrsrs

  • Questão deveria ter sido anulada. A opção correta é -h (minúsculo). Lembrando que o Linux é case sensitive, ou seja, -h é diferente de -H

    http://en.wikipedia.org/wiki/Df_%28Unix%29

  •   -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G) 

    -H, --si  likewise, but use powers of 1000 not 1024


  • questão pegadinha, trabalha com a diferença entre h e H.

    -h: 1.024 (mais usado)
    -H: 1.000 (menos usado)

  • Embora seja algo SUPER específico, a questão não está errada.

    a) -S não existe esse argumento na função df

     

    b) -h, --human-readable print sizes in powers of 1024 (e.g., 1023M)

     

    c) -H, --si print sizes in powers of 1000 (e.g., 1.1G)

     

    d) -s não existe esse argumento na função df

     

    e) -v     (ignored)

     

    Rodrigo Concurseiro, o link que você citou é a respeito de UNIX e não Linux. Vários SOs, inclusive Mac e Linux foram baseados no UNIX, mas não quer dizer que são iguais os argumentos e/ou as funções em ambos.

  • tinha google no dia da prova? pra quê queimar a questão e incentivar o chute com tanto assunto bom pra avaliar os candidatos?

    bancas, entendam que o profissional de TI VAI usar o google, ele está aí para ser usado, cobrem coisas que a gente deveria saber "by heart" e não deveria precisar usar o google


ID
661636
Banca
FCC
Órgão
TRE-CE
Ano
2012
Provas
Disciplina
Programação
Assuntos

Analise o seguinte comando em shell script do sistema operacional Linux:

ls -lGB

Em relação à execução deste comando, considere: É exibida uma listagem

I. de arquivos em formato longo.

II. de arquivos onde são suprimidas informações relativas aos arquivos binários.

III. com informações sobre os grupos em que cada arquivo pertence.

É correto o que consta em

Alternativas
Comentários
  • -l  exibe os arquivos em lista
    -G não exibe info sobre grupos
    -B não exibe arquivos iniciados com ~ (arquivos de cópia de segurança)
  • Link que explica todos detalhes do comando LS:

    http://www.vivaolinux.com.br/artigo/O-comando-LS-de-A-a-Z/
  • ls -lGB

    ls: comando para listar os arquivos
    - l: Usa o formato de lista longa
    - G: Em lista longa (-l), não emite os nomes de grupo (o mesmo que --no-group)
    - B: Não lista as entradas implícitas terminadas com ~ (o mesmo que --ignore-backups)

    I. de arquivos em formato longo. (Correto) II. de arquivos onde são suprimidas informações relativas aos arquivos binários. (Errado) III. com informações sobre os grupos em que cada arquivo pertence. (Errado)
    Resposta: C
  • Parece questão para certificação!

  • É importante reforçar que a opção B faz com que os arquivos cujos nomes TERMINEM com "~", ou seja, arquivos de backup, não sejam listados.

  • Gabarito C

    Copiando do colega para melhor vizualização...

    ls -lGB

    ls: comando para listar os arquivos
    - l: Usa o formato de lista longa
    - G: Em lista longa (-l), não emite os nomes de grupo (o mesmo que --no-group)
    - B: Não lista as entradas implícitas terminadas com ~ (o mesmo que --ignore-backups)

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
801562
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Programação
Assuntos

Julgue os próximos itens, relativos aos sistemas operacionais
Windows, Unix e Linux.

No Unix, os scripts shell são arquivos de texto que possuem permissão de execução; a primeira linha de um script shell deve-se iniciar com #$ .

Alternativas
Comentários
  • Deve-se iniciar com #!
  • São dois os pré-requisitos para um arquivo de texto se tornar um shell:

    - começar com #!/bin/bash

    - e mudar o arquivo para ser um executável com o com o comando:

              chmod +x arquivo

    - ou executar o arquivo com o comando

             sh ./ arquivo


ID
813640
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Programação
Assuntos

Sobre o shell, é correto afirmar que o comando

Alternativas
Comentários
  • bd = de 1 pra 2

    fg = de 2 pra 1


ID
910267
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Programação
Assuntos

O comando de shell script grep é utilizado para a procura de padrões de texto em arquivos. Por padrão, a procura diferencia letras maiúsculas e minúsculas. Para efetuar uma pesquisa, sem levar em consideração este fator, basta executar o comando com a opção

Alternativas
Comentários
  • grep é um aplicativo para linha de comando de sistemas Unix/Linux que faz buscas no conteúdo dos arquivos (ou input) procurando linhas que respeitem a expressão regular mencionada. Todas as linhas encontradas são mostradas na saida padrão (geralmente o monitor).
    Por exemplo:
    Para encontrar todos os usos da palavra Posix (em qualquer caso) em text.mm arquivo e escrever com números de linha:
    grep -i -n posix text.mm
  • Esta na disciplina errada, Banco de dados ?

  • Essa Questão é de Arquitetura da Computação >  Sistemas Operacionais.

  • opções

    -A [número ] Mostra o [número] de linhas após a linha encontrada pelo grep.

    -B [número ] Mostra o [número] de linhas antes da linha encontrada pelo grep.

    -f [arquivo ] Especifica que o texto que será localizado, esta no arquivo [arquivo].

    -h, –no-filename Não mostra os nomes dos arquivos durante a procura.

    -i, –ignore-case Ignora diferença entre maiúsculas e minúsculas no texto procurado e arquivo.

    -n, –line-number Mostra o nome de cada linha encontrada pelo grep.

    -E Ativa o uso de expressões regulares.

    -U, –binary Trata o arquivo que será procurado como binário.


    Fonte: Guia Foca, pag. 114
    []'s

ID
910270
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Programação
Assuntos

Durante a análise de logs de arquivos, principalmente de logs de arquivos ainda em execução, uma ferramenta de shell script é bastante útil. Essa ferramenta é capaz de ler e imprimir parte do final do arquivo sendo analisado, efetuando a impressão de novas informações que são adicionadas dinamicamente ao arquivo, sem a necessidade de executar novamente o comando para a leitura do final do arquivo. A ferramenta em questão é chamada

Alternativas
Comentários
  • Esta na disciplina errada, Banco de dados ?

    De qualquer maneira, o comando tail le o final do arquivo, e seu uso pode ser observado abaixo:

    Examples tail myfile.txt

    Outputs the last 10 lines of the file myfile.txt.

    tail myfile.txt -n 100

    Outputs the last 100 lines of the file myfile.txt.

    tail -f myfile.txt

    Outputs the last 10 lines of myfile.txt, and monitors myfile.txt for updates; tail then continues to output any new lines that are added to myfile.txt.

    tail -f access.log | grep 24.10.160.10

  • Essa Questão é de Arquitetura da Computação >  Sistemas Operacionais.

  • O comando tail do sistema operacional Unix é utilizado para exibir apenas as últimas linhas de um arquivo texto.[1] Em geral é utilizado para observar as últimas atualizações em arquivos de log.


ID
910273
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Programação
Assuntos

O comando de shell script touch,

Alternativas
Comentários
  • Touch é um padrão Unix usado para alterar um arquivo de acesso e modificação de data e hora . É também utilizado para criar um novo ficheiro de vazio.
  • DESCRIPTION

        The touch utility sets the modification and access times of files.  If any file does not exist, it is created with default permissions.

    $ touch teste_comando_touch.txt
    $ ls -l
    total 0
    -rw-r--r--  1 walterflavio  staff  0 Jun 11 20:10 teste_comando_touch.txt
    $ touch teste_comando_touch.txt
    $ ls -l
    total 0
    -rw-r--r--  1 walterflavio  staff  0 Jun 11 20:11 teste_comando_touch.txt


  • Essa Questão é de Arquitetura da Computação >  Sistemas Operacionais.

  • Dica no VOL sobre o comando touch:


    http://www.vivaolinux.com.br/dica/Comando-touch-uma-forma-para-modificar-a-data-de-acesso-e-modificacao-de-arquivos

ID
910276
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Programação
Assuntos

O comando de shell script utilizado para reportar a quantidade de espaço livre em cada partição do disco é chamado

Alternativas
Comentários
  • df comando no Linux fornece espaço em disco as informações de uso dos sistemas de arquivos.
  • Um exemplo extraído da minha máquina:

    bbs@the-black:~$ df -h
    Sist. Arq.      Tam.      Usado    Disp.     Uso%    Montado em
    /dev/sda1    92G        23G        65G         27%      /
    udev            1,9G        4,0K       1,9G        1%        /dev
    tmpfs           779M      4,2M       774M       1%       /run
    none            5,0M        0              5,0M       0%       /run/lock
    none            1,9G        1,5M      1,9G        1%        /run/shm

    Percebam o parâmetro "-h" que foi usado para que os valores seja retornados em formato mais amigável (para humanos)...
  • Essa Questão é de Arquitetura da Computação >  Sistemas Operacionais.


ID
928567
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Acerca da programação em linguagens shell de script, julgue os
itens subseqüentes.

Considerando o código a seguir, é correto afirmar que não há erros de sintaxe; é possível executar o código para copiar ou mover arquivos do diretório identificado por dir1 para o identificado por dir2; os arquivos de subdiretórios em dir1, caso existam, serão copiados para dir2.

#! /bin/csh -f
echo 'Diretorio de origem:'
set dir1=($<)
echo 'Diretorio de destino:'
set dir2=($<)
if ((! -d $dir1)**(! -d $dir2)) then
         echo "Diretorios incorretos."
endif
echo 'Extensao dos arquivos:'
set ext=($<)
echo 'Digite comando [cp ou mv]:'
set comando=($<)
switch ($comando)
case 'cp':
         foreach arquivo (dir1/*)
              if (! -d $arquivo && $arquivo =~ *.ext) then
                   cp $arquivo dir2
              endif
         end
case 'mv':
         foreach arquivo (dir1/*)
              if (! -d $arquivo && $arquivo =~ *.ext) then
                   mv $arquivo dir2
              endif
         end
default:
         echo 'Comando invalido'
         exit 01
endsw
exit 0

Alternativas
Comentários
  • Após instalar o tcsh em meu notebook, e rodar o script com os parametros -v e -x para caráter de debug, recebi o seguinte erro:

    if: Expression Syntax

    O que me leva a crer que foi um erro por conta do ** no if quando deveria ser um logical or  || . 
    http://www.cs.duke.edu/csl/docs/unix_course/intro-130.html

  • Também não rodou no meu Linux
  • Ops...anos depois eu acho que percebi o erro.

    Para fechar um "if" em bash você utiliza "fi", e não "endif" .

     

    https://linuxconfig.org/bash-scripting-tutorial#h6-simple-bash-if-else-statement


ID
928570
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Acerca da programação em linguagens shell de script, julgue os
itens subseqüentes.

Quanto ao código a seguir, é correto afirmar que não há erros de sintaxe; o argumento deve ser um nome de arquivo para que não haja falha; $1 identifica o argumento; o número e o conteúdo de cada linha no arquivo serão apresentados, se o argumento for um nome de arquivo com extensão sh ou csh.

#!/bin/sh
function imprimir ()
{
           echo "Arquivo:" $1
           echo "Tamanho:" $(wc $1)
           linha=
           n = 0
           while read linha; do
                 ((n = n + 1))
                 echo "n : linha";
           done
}
if [ $# -ne 1 ]; then
           echo "Falha na execucao."
           exit 2;
fi
if [ ! -r "$1" ]; then
           echo "Falha na execucao."
           exit 2;
fi
case $1 in
                      *.sh) imprimir
                                    break
                      *.csh) imprimir
                                    break
                      *) echo "Tipo invalido."
                                    exit 1
exit 1;

Alternativas
Comentários
  • A linha  echo "n : linha"; vai escrever exatamente n:linha na tela.
    Para que essa linha estivesse correta, deveria ser echo "$n:$linha";

ID
930895
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Com relação a linguagens de script, julgue os itens a seguir.

O interpretador da linguagem bash script é integrado ao shell; por isso, os scripts escritos em bash script, que são executados de forma transparente, não necessitam de permissão especial para sua execução.

Alternativas
Comentários
  • Na verdade, o bash é considerado uma das famílias de shells(a outra é o csh)[1]. Isso não quer dizer que vc não precise de permissões para executar scripts bash.

    Fonte:

    [1] The Bash shell – basic information: Linux Intermediate.


ID
932878
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Julgue os itens subsequentes, acerca dos ambientes Windows, Unix e Linux.

O comando do shell bash que permite declarar uma variável com um nome específico, atribuindo-se a ela um dado valor, é o seguinte:

declare [-frxi]
[name [=value] ]




Alternativas

ID
1118503
Banca
VUNESP
Órgão
EMPLASA
Ano
2014
Provas
Disciplina
Programação
Assuntos

Analise o conteúdo do Shell Script “num.sh” apresentado a seguir

#!/bin/bash
echo -n 1 >&2
echo -n 2 >&1
echo -n 3 1>&2
echo -n 4 2>&1
echo -n 5

Se o script for executado no terminal de comando do sistema operacional Linux: “./num.sh >/dev/null”, será exibida na tela a seguinte mensagem:

Alternativas
Comentários
  • O lance é perceber que todas as linhas do script (exceto as com os números 1 e 3) estão direcionando a saída do comando ECHO para a saída padrão (stdout).

    Ao final, quando o script é executado, a saída do script (stdout) é direcionada para o limbo: "./num.sh >/dev/null". Logo, tudo que no script estava direcionando para stdout foi para /dev/null.

    Já os comandos "echo -n 1 >&2" e "echo -n 3 1>&2" foram demonstrados na tela pois, diferente dos demais, eles foram direcionados para a saída de erro (stderr)

    Para maiores detalhes de como funcionam os redirecionamentos e as saídas-padrão, acesse http://www.devin.com.br/shell-entrada-e-saida/

  • Alguem sabe explicar essa questao? nao entendi nada =S

  • echo -n 1 >&2 --> Redireciona a saída padrão STDOUT para saída de erro (STDERR) - &2

    echo -n 2 >&1 --> Redireciona PARA saída padrão STDOUT -- &1 -- mesma coisa que echo -n 2.

    echo -n 3 1>&2 --> Redireciona a saída padrão STDOUT -- 1> ou > -- para saída de erro (STDERR) - &2.

    echo -n 4 2>&1--> Redireciona a saída de erro (STDERR) -- 2> -- para saída padrão STDOUT -- &1.

    echo -n 5 --> Impresso na saída padrão STDOUT.

     “./num.sh >/dev/null” --> Redireciona os comando da saída STDOUT para o "limbo"/dev/null.

    Como a saída parão de STDERR é a tela, exibe apenas os comando com essa saída: 13

    Foi usada uma saída de erro STDERR para imprimir na tela um comando sem erros.


ID
1217548
Banca
VUNESP
Órgão
DESENVOLVESP
Ano
2014
Provas
Disciplina
Programação
Assuntos

Um dos shell padrão do sistema operacional Linux é o Bash que possui vários comandos adicionais que facilitam a interação do usuário com o Linux. Por exemplo, ao digitarmos o comando !! (dupla exclamação),

Alternativas
Comentários
  • O comando !! (dois pontos de exclamação) executa novamente o último comando aplicado.

    Fonte: http://www.oracle.com/technetwork/pt/articles/linux/part5-087549-ptb.html

ID
1246537
Banca
UFMT
Órgão
UFMT
Ano
2014
Provas
Disciplina
Programação
Assuntos

A coluna de números apresenta comandos de Shell BASH e a de parênteses, a interpretação de cada comando. Numere a coluna de parênteses de acordo com a de números.

1 - ls /myroot > conteudo.txt
2 - ls /myroot >> conteudo.txt
3 - ls /myroot ; more conteudo.txt
4 - ls /myroot && more conteudo.txt

(   ) Mostra a lista de arquivos do diretório myroot e o conteúdo do arquivo conteudo.txt.
(   ) Adiciona no final do arquivo conteudo.txt a lista de arquivos do diretório myroot.
(   ) Cria o arquivo conteudo.txt com a lista de arquivos do diretório myroot.
(   ) Caso não exista o diretório myroot, mostra somente mensagem de erro.

Assinale a sequência correta.

Alternativas
Comentários
  • Discordo do gabarito, pois...

    Redirecionamento > sobrescreve todo arquivo
    Redirecionamento >> grava ao final do arquivo

    (    ) Mostra a lista de arquivos do diretório myroot e o conteúdo do arquivo conteudo.txt
    ( 2 ) Adiciona no final do arquivo conteudo.txt a lista de arquivos do diretório myroot
    ( 1 ) Cria o arquivo conteudo.txt com a lista de arquivos do diretório myroot
    (    ) Caso não exista o diretório myroot, mostra somente mensagem de erro

    Logo, acredito que não há resposta correta

  • 1 - ls /myroot > conteudo.txt : Caso "conteudo.txt" não exista, será criado e enviado o resultado ls, se existir será sobrescrito;
    2 - ls /myroot
    >> conteudo.txt : Envia o resultado do ls para o FINAL do arquivo sem sobrescrever.

     

    .

    Questão sem gabarito.

    .

    At.te

    Foco na missão 


ID
1289206
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Provas
Disciplina
Programação
Assuntos

Um técnico de informática escreveu o seguinte script shell chamado “teste”:

#!/bin/sh
while read f
do
echo f
done < $1

Ao ler o programa, um colega percebeu que o comportamento do comando

teste arquivo

é o mesmo do comando

Alternativas

ID
1362091
Banca
Quadrix
Órgão
DATAPREV
Ano
2012
Provas
Disciplina
Programação
Assuntos

Em programação shell, para comparar se uma string é nula, utiliza-se o comando test com a opção:

Alternativas
Comentários
  • O comando test - Exemplo: test $var = "abc"

    O exemplo verifica se o conteúdo da variável $var é "abc".

     

    As opções do comando test são:

    -lt Número é menor que (LessThan)

    -gt Número é maior que (GreaterThan)

    -le Número é menor igual (LessEqual)

    -ge Número é maior igual (GreaterEqual)

    -eq Número é igual (EQual)

    -ne Número é diferente (NotEqual)

    = String é igual

    != String é diferente

    -n String não é nula

    -z String é nula

     

    Fonte: https://www.vivaolinux.com.br/artigo/As-maravilhas-do-Shell-Script/?pagina=3

     

    Gabarito: a)


ID
1449871
Banca
SRH
Órgão
UERJ
Ano
2015
Provas
Disciplina
Programação
Assuntos

Suponha que no diretório /home/uerj/teste existam os subdiretórios d1, d2, d3, d4 e d5 e que, em cada um deles, exista um arquivo com o nome a.txt. Deseja-se fazer um script que mova o arquivo a.txt desses subdiretórios para o diretório /home/uerj/teste. Como todos os arquivos possuem o mesmo nome, deve-se renomeá-lo e adicionar o número do diretório ao nome do arquivo. Por exemplo, o arquivo /home/uerj/teste/d1/a.txt será movido para /home/uerj/teste/a1.txt enquanto que o arquivo /home/uerj/teste/d3/a.txt será movido para /home/uerj/teste/a3.txt.
O código do script que realiza esse procedimento é:

Alternativas
Comentários
  • Apenas pela sintaxe do comando é possível matar essa questão sem a necessidade de analisar por completo o código


ID
1449877
Banca
SRH
Órgão
UERJ
Ano
2015
Provas
Disciplina
Programação
Assuntos

O interpretador de comandos bash permite a verificação do status do encerramento do último comando ou função executado no script. Um exemplo de trecho de código fonte que verifica o valor desse status é:

Alternativas
Comentários
  • $? retorna o status

    0 = êxito

    1 = falha

    Sintaxe correta: if [ $? -ne 0 ]; then exit; fi

    O que o programa quer dizer: Se o o status da sintaxe anterior for diferente (-ne not equal) de 0, então saia.

    Gabarito letra A


ID
1460677
Banca
CESGRANRIO
Órgão
PETROQUÍMICA SUAPE
Ano
2012
Provas
Disciplina
Programação
Assuntos

No contexto do bash Shell, qual variável de ambiente armazena o nome do diretório corrente?

Alternativas

ID
1460707
Banca
CESGRANRIO
Órgão
PETROQUÍMICA SUAPE
Ano
2012
Provas
Disciplina
Programação
Assuntos

O comando useradd, encontrado no bash shell, é usado para criar uma nova conta.
Ao criar uma conta, qual opção desse comando permite definir uma data de expiração para essa conta?

Alternativas
Comentários
  • a) cria o diretório home do usuário, caso não exista;

    b) grupo inicial do usuário;

    c) Gabarito;

    d) diretório home do novo usuário;

    e) -

    .

    At.te

    Foco na missão


ID
1470154
Banca
UNIRIO
Órgão
UNIRIO
Ano
2014
Provas
Disciplina
Programação
Assuntos

O item que contém uma expressão CORRETAMENTE escrita em shell script:

Alternativas
Comentários
  • Tem um erro na alternativa, C é usado a crase e não aspas simples.


ID
1470805
Banca
UNIRIO
Órgão
UNIRIO
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considerando a linguagem de script shell script, é CORRETO afirmar que

Alternativas
Comentários
  • Letra (a) errada: Para que seja mostrado na tela o conteúdo de uma variável, usa-se o comando echo $nome_variável .

    Letra (b) errada: Para verificar igualdades e usado o "-eq ".

    Letra (c) errada: $0 retorna o nome do script em execução.

    Letra (d) correta:

    Letra (e) errada: o E lógico e usado com o comando, &&

    Espero ter ajudado.

  • A) Somente o “$termo” representa variável, assim para exibir o valor atribuído a ela utiliza-se “echo $termo”.

    B) No controle de fluxo com if, o operador -eq é utilizado para verificar a igualdade entre os operandos.

    C) $0 é uma variável especial que indica nome do comando ou função.

    D) $# é uma variável especial que indica o número de parâmetros passados.

    E) O E lógico pode ser utilizados para associar duas condições através do comando "&&?.

    "Ninguém pode ser perfeito. Mas todos podem ser melhores." Bob Esponja


ID
1470808
Banca
UNIRIO
Órgão
UNIRIO
Ano
2014
Provas
Disciplina
Programação
Assuntos

O comando Set-ExecutionPolicy permite determinar a política de execução de scripts em powershell. Sobre essas políticas, é CORRETO afirmar que, na política

Alternativas
Comentários
  • Politicas de execução

    Para determinarmos a melhor configuração devemos entender cada uma das opções disponíveis.

    Restricted – Nenhum script pode ser executado e o Powershell só executa comandos no modo interativo.

    AllSigned – Somente scripts assinados por uma autoridade confiável podem ser executados.

    RemoteSigned - Scripts baixados da internet precisam ser assinados.

    Unrestricted – Nenhuma restrição qualquer script pode ser executado, scripts baixados da internet exibiram um aviso antes de serem executados.

    Bypass – Nenhum script é bloqueado e nem são exibidos avisos.

    Para configurar a politica de execução, execute o cmdlet Set-ExecutionPolicy.

    Set-ExecutionPolicy Unrestricted

    FONTE: 
    https://goo.gl/Up0nXL

  • Execução de scripts em PowerShell

    Para evitar que scripts PowerShell (com arquivos de extensão ".ps1") sejam executados indevidamente em seu sistema operacional, o PowerShell utiliza algumas políticas de segurança bloqueiam por padrão scripts "não assinados". Isto é uma garantia de segurança principalmente para arquivos obtidos através da internet.
    Estas Políticas de Execução foram introduzidos no Windows Server 2003 SP1 e no Windows XP SP2. 
    O controle destas permissões é realizado pelo comando Set-ExecutionPolicy, que pode alterar às preferencias de uso das Políticas de Execução.

    Tipos de permissão:

    Restricted - não permite a execução de nenhum script, este é o padrão da Política de Segurança (até o Windows Server 2012 R2)
    AllSigned - Todos os scripts devem ser assinados por alguém confiável.
    Remote Signed - Todos os scripts que forem baixados da Internet devem ser assinados por alguém confiável, porém, ainda será possível executar scripts "não assinados" desde que o arquivo .ps1 esteja armazenado no computador.
    Unrestricted - scripts podem ser executados de forma irrestrita na máquina
    Bypass - Não há nenhuma restrição, bloqueio, advertências ou avisos. 
    Undefined - Remove a Política de Execução atual, seja ela qual for, a não ser que esta política esteja definida no escopo de uma Diretiva de Grupo


ID
1527937
Banca
IDECAN
Órgão
Banestes
Ano
2012
Provas
Disciplina
Programação
Assuntos

O Shell é um programa interpretador de instruções, que foi escrito em diferentes versões. Diante do exposto, analise.

I. O sh é o Shell padrão do Unix.
II. O bash é o Shell padrão do Linux.
III. O ksh é um upgrade do bash.
IV. A estrutura de linguagem do csh é bastante parecida com a linguagem C++.

Está(ão) correta(s) apenas a(s) afirmativa(s)

Alternativas
Comentários
  • I. O sh é o Shell padrão do Unix. ✔

    II. O bash é o Shell padrão do Linux. ✔

    III. O ksh não é um upgrade do bash

    IV. A estrutura de linguagem do csh não é parecida com a linguagem C++. 

    Gabarito: D

  • Comentarei as alternativas III e IV:

    III - O ksh é o executável do shell Korn, um shell de comando e linguagem de programação que executa comandos lidos em um terminal ou arquivo;

    IV - O csh ou C shell contém uma linguagem bem parecida com o C.


ID
1544569
Banca
Prefeitura do Rio de Janeiro - RJ
Órgão
Câmara Municipal do Rio de Janeiro
Ano
2014
Provas
Disciplina
Programação
Assuntos

O uso da linguagem de script BAT gera arquivo com extensão .bat e pode ser definido como um conjunto de comandos executados em lote (sequencialmente), com a função de automatizar tarefas rotineiras e muitas vezes trabalhosas. Entre os comandos possíveis de um uso em um arquivo bat, um serve para criar um diretório denominado cmrj, por exemplo, enquanto o outro serve para exibir informações e o código executado pelo sistema. Esses comandos são, respectivamente:

Alternativas
Comentários
  • md -make directory (fazer um diretório)

    cd - change directory (mudar de diretório )

    echo - exibe alguma coisa

    ex.: echo "Olá" (aperta enter)

    Aparece na tela: Olá


ID
1603069
Banca
CESGRANRIO
Órgão
IBGE
Ano
2013
Provas
Disciplina
Programação
Assuntos

Para testar o código de saída do último comando executado num script da bash (Bourne-Again Shell) e encerrar a execução desse script, caso o comando tenha sido executado sem erros, deve-se escrever a linha de código.

Alternativas
Comentários
  • $? retorna o status do sistema. 0 é êxito, e 1 é falha.


ID
1682893
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2015
Provas
Disciplina
Programação
Assuntos

Julgue o seguinte item, relativo à programação em Shellscript.

O seguinte script Powershell lista todos os diretórios e arquivos do driver C.

Get-ChildItem C:\ -Recurse

Alternativas
Comentários
  • Bem, não entendi o porquê de a questao ter sido anulada, pois o fod*** Estrategia[1] dar essa questo como errada e não pede anulaçao. Senao, vejamos:

    [1]

    Pessoal, o cmdlet Get-ChildItem funciona de forma similar ao nosso conhecido comando dir (na verdade, em cmdlets, segundo o site Technet o dir È um alias para o comando Get-ChildItem). Se usarmos GetChildItem C:\ o retorno È a lista dos diretÛrios e arquivos do driver C. O par‚metro -recurse È utilizado em conjunto com o cmdlet Get-ChildItem se houver necessidade de navegar em uma estrutura de diretÛrios aninhados buscando um determinado padrao, um arquivo .txt, por exemplo.

    Gabarito: Errada 

    Fonte:

    [1] Estrategia


ID
1682896
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2015
Provas
Disciplina
Programação
Assuntos

Julgue o seguinte item, relativo à programação em Shellscript.

O resultado da execução do script Bash mostrado a seguir é representado por Valor final é 6.

var=0

func(){

      local var=$var;

      let var=var+1

}

while [ $var -lt 5 ]; do

            let var=var+1

done

func;

echo Valor final é $var


Alternativas
Comentários
  • Questão bastante simples, pessoal. Bastava atentar que será 5 a quantidade de iterações do laço while [ $var -lt 5 ]; do let var=var+1, e não 6 como a questão afirma. Gabarito Errada. Não vejo possibilidade de recurso.


    http://www.estrategiaconcursos.com.br/blog/comentarios-da-prova-analista-judiciario-suporte-em-ti-stj/

  • Notem que há duas variáveis var, uma "global" e outra local à função func. Inicialmente, var(global) = 0. Após as 5 iterações do while, var(global) = 5. A chamada à função func não altera o valor de var(global), e sim o valor de var(local), que inicia valendo 5 e termina a função valendo 6, quando é descartada por ser local à função. O trecho "echo Valor final é $var" refere-se à var(global) que é igual a 5.

  • Vamos resolver essa questão passo a passo. Para isso, numerei as linhas:

    1 var=0

    2 func(){

    3 local var=$var;

    4

    5 let var=var+1

    6 }

    7 while [ $var -lt 5 ]; do

    8 let var=var+1

    9 done

    10 func;

    11 echo Valor final é $var

    O código executa de cima pra baixo, linha a linha. Na linha 1, a var = 0; na linha 2, temos a função “func()” e, quando ela for chamada, na linha 10, o var da linha 3 assume o valor “0”; e o var da linha 5 assume o valor 0+1 = “1”.

    Eu fiz essa conta com a função func porque ela tá no código, mas ela não infuencia no valor final da variável conforme pede a questão. Repare que o while executa independentemente da função “func”, pois ele tá fora dela. Você pode até mesmo remover a função func e deixar só o while que ele executa normalmente.

    Voltando à sequência do código, quando entramos no loop, o while não enxerga o novo valor, ou seja, “1”, visto que se trata de um valor local da função interna func() - e, como vimos, while não tem nada a ver com ela. Var, então, continua sendo “0”.

    Fiz a tabela abaixo com um passo a passo para melhor compreensão:

    LOOP ; VALOR DA VARIAVEL

    Loop 1($var =0); Let var = 0+1 = 1

    Loop 2($var = 1); Let var = 1+ 1 = 2

    Loop 3($var = 2); Let var = 2+ 1 = 3

    Loop 4($var = 3); Let var = 3+ 1 = 4

    Loop 5($var = 4); Let var = 4+ 1 = 5 (Parou aqui, uma vez que a questão informa que o loop vai até antes de 5, ou seja, 4.

    Quando o while termina, seu valor final, de var assumiu o valor 5.


ID
2049559
Banca
IF-PE
Órgão
IF-PE
Ano
2016
Provas
Disciplina
Programação
Assuntos

Na programação de scripts em bash, é CORRETO afirmar que o termo “shebang”

Alternativas
Comentários
  • "The shebang line is usually ignored by the interpreter because the "#" character is a comment marker in many scripting languages..."

    fonte: https://en.wikipedia.org/wiki/Shebang_(Unix)#Syntax


ID
2049565
Banca
IF-PE
Órgão
IF-PE
Ano
2016
Provas
Disciplina
Programação
Assuntos

Em relação ao bash e seus scripts, marque a alternativa CORRETA.

Alternativas
Comentários
  • Bash script é interpretado, tende a ser menos eficientes que programas em C.

    Gab B.


ID
2049580
Banca
IF-PE
Órgão
IF-PE
Ano
2016
Provas
Disciplina
Programação
Assuntos

Em setembro de 2014, foi relatado o primeiro problema de segurança conhecido como shellshock. Considerando este contexto, analise as alternativas a seguir.

I. O problema era ligado a falhas de validação nos limites de variáveis inteiras.

II. O principal programa afetado foi o “bash”.

III. O sistema afetado executa comandos indevidamente ao importar funções.

IV. A falha ocorre como resultado do estouro de um array.

V. O defeito permitia explorar diretamente uma conexão cifrada no TLS – Transport Layer Security.

Estão CORRETAS apenas

Alternativas
Comentários
  • Shellshock também conhecido como Bashdoor, é uma falha de segurança no Bash shell em sistemas baseados em Unix, que foi divulgado em 24 de setembro de 2014.

     

    Muitos servidores na internet, tais como servidores web usam o Bash para processar comandos, permitindo que um atacante explore a vulnerabilidade ​​do Bash para executar comandos arbitrários. Isso pode permitir que um invasor obtenha acesso não autorizado a um sistema de computador.

     

    Essa falha faz com que Bash execute comandos involuntariamente quando eles são armazenados em variáveis ​​de ambiente especialmente criados. Em poucos dias outras vulnerabilidades relacionadas em Bash foram encontrados levando à necessidade de novas correções.

     

    Fonte: https://pt.wikipedia.org/wiki/Shellshock

  • https://www.qconcursos.com/questoes-de-concursos/questoes/search?q=Q496324

  • como que eu vou saber?


ID
2096749
Banca
CESPE / CEBRASPE
Órgão
TCE-PA
Ano
2016
Provas
Disciplina
Programação
Assuntos

Julgue o item a seguir acerca do emprego da ferramenta shell no desenvolvimento de scripts.

A expressão teste.? lista todos os arquivos de um diretório que contenha os arquivos teste.c, teste.o e teste.log.

Alternativas
Comentários
  • Teste.? permite que exista qualquer caractere após o ponto, mas apenas UM caractere. Para que o arquivo teste.log fosse listado, é necessário o comando teste.*

  • O correto seria:

     

    teste.??? ➝ teste.log

    .

    .

    At.te

    Foco na missão ❣


ID
2096752
Banca
CESPE / CEBRASPE
Órgão
TCE-PA
Ano
2016
Provas
Disciplina
Programação
Assuntos

Julgue o item a seguir acerca do emprego da ferramenta shell no desenvolvimento de scripts.

Por utilizar uma linguagem padronizada conforme o padrão POSIX, o Script Bash apresenta simplicidade e portabilidade.

Alternativas
Comentários
  • GAB: C

    Vantagens : Portabilidade, Simplicidade e Facilidade de desenvolvimento.

    Respeitam um padrão POSIX, e são universal entre sistemas UNIX,podendo ser escritos com cuidado , usados através de uma série de sistemas.

    Fonte: http://rjnetwork.com.br/blog/?p=1287

  • c-

    You can use POSIX standard in many shells such as, dash , bash , ksh , mksh , yash , zsh , etc. You need to be aware that each shell has its own commands and options or different options top of the POSIX specification.

    https://betterprogramming.pub/24-bashism-to-avoid-for-posix-compliant-shell-scripts-8e7c09e0f49a


ID
2286592
Banca
CETRO
Órgão
FUNDAÇÃO CASA
Ano
2014
Provas
Disciplina
Programação
Assuntos

Leia o trecho sobre o Shell Script e analise as assertivas abaixo.

#!/bin/bash

echo "Vou buscar os dados do sistema.

Posso continuar? [s/n] "

scanf RESPOSTA

test "$RESPOSTA" = "n" && exit

echo "Data e Horário:"

date

echo

echo "Uso do disco:"

df

echo

echo "Usuários conectados:"

w


É correto o que se afirma em

I. echo – exibe mensagens na tela.

II. scanf – captura o que o usuário digitar.

III. date – mostra data e horário.

IV. w – mostra usuários conectados.

É correto o que se afirma em

Alternativas
Comentários
  • I. CORRETA;

    II. scanf (read) – captura o que o usuário digitar.

    III. CORRETA;

    IV. CORRETA;

    Gabarito alternativa C


ID
2510275
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Programação
Assuntos

A respeito dos comandos “nome=fulano” e “export nome=fulano” executados por um shell do sistema Linux, é correto afirmar: 

Alternativas
Comentários
  • No primeiro caso apenas para o shell, no segundo, para o shell e todos os processos iniciado a partir dele

ID
2510278
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Programação
Assuntos

Um conceito importante na operação do shell do sistema Linux é o conceito de filtros. Em termos genéricos, um filtro é um programa que:

Alternativas
Comentários

  • Os filtros são comandos que recebem uma entrada, processam a informação e apresentam o resultado como saída. 

  • Um filtro é basicamente um programa que lê dados da entrada padrão, realiza algum processamento e escreve os dados resultantes na saída padrão.

    http://wiki.inf.ufpr.br/maziero/doku.php?id=unix:shell_avancado

  • O enunciado utiliza a expressão “termos genéricos” e assim um filtro nada mais é que um programa que lê dados da entrada padrão e escreve dados na saída padrão. O comportamento específico de um filtro dependerá do tipo de filtro e dos parâmetros estipulados pelo usuário. Replicar a entrada, eliminar linhas ou palavras através do emprego de expressões regulares, dentre outros, são todos comportamentos alcançáveis através da aplicação de filtros. Assim, as demais alternativas contrariam o enunciado pois delimitam o escopo de aplicação dos filtros, descrevendo comportamentos específicos.

    Fonte: Alfacon


ID
2510281
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Programação
Assuntos

Na execução de um shell script, as variáveis $#, $? e $$ têm, respectivamente, o valor de:

Alternativas
Comentários
  • Gabarito C

    Matei essa questão pelo $?

    Segue:

    $# - número de argumentos na invocação do script.

    $? - resultado (status) do último comando executado pelo script.

    $$ - número do processo (PID) do shell executando o script.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

     

  • Fala Ibsen, Felizmente segui sua mesma linha de raciocínio conseguindo chegar também ao Gab.

  • Show meu amigo ! É uma honra compartilhar esse mesmo raciocínio com você !

    Vamos a luta companheiro ! TRE-RJ é nosso !

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Só sabia essa -  $# é uma variável especial que indica o número de parâmetros passados.

    Deu para chegar na resposta ;D


ID
2510284
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Programação
Assuntos

O shell permite que vários comandos simples sejam combinados, formando assim um comando mais complexo. Através do pipe (operador |), o shell conecta a saída padrão de um comando à entrada padrão de outro. Qual dos comandos abaixo apresenta somente os arquivos do diretório atual que contêm “txt”, de forma ordenada?

Alternativas
Comentários
  • ls lista arquivos sort ordena elementos grep filtra a saída de

ID
2510290
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Programação
Assuntos

Usando operadores de redireção no shell, o comando “rev < arquivo1.txt > arquivo2.txt”:

Alternativas
Comentários
  • Gabarito D

    rev:

    Esse comando inverte uma string.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

     

  • O gabarito provisório era D. Acredito que o motivo da anulação é que ela dava a entender que o conteúdo de arquivo1.txt também sofreria alteração, o que não ocorre já que é usado como input ao comando rev.

     

    Para corrigir a alternativa, eu escreveria assim:

    D) escreve em arquivo2.txt as linhas de arquivo1.txt em ordem reversa.


ID
2518129
Banca
FCC
Órgão
TRT - 24ª REGIÃO (MS)
Ano
2017
Provas
Disciplina
Programação
Assuntos

Considere os seguintes comandos ou trechos de comandos:


I. Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, IPAddress - Autosize

II. #!/bin/sh

III. int umInteiro = 5

String frase = " " "número ${umInteiro},

e seu dobro: ${umInteiro + umInteiro}" " "


Em ambientes ideais, é correto afirmar que

Alternativas
Comentários
  • Listar os adaptadores e seus respectivos endereços IP:
    Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, IPAddress -Autosize

    Para visualizar as configurações de rede atuais dos adaptadores, conforme alternativa d, seria:

    Get-NetIPConfiguration

    http://www.bosontreinamentos.com.br/windows-powershell/14-exemplos-de-comandos-de-rede-no-windows-powershell/

  • II. https://www.shellscript.sh/first.html

  • Qual o erro da alternativa A?

  • quanto a alternativa A, creio que se fosse /bin/bash em vez de /bin/sh estaria certa...

    fica para comentários

  • Bem, vamos por partes:

    Principais Shells Linux:

    Bourne Shell(sh): versão padrão do Linux ;

    Bourne-Again Shell: Padrão linux, traz comandos do C Shell e do Korn Shell, e é quase 100% compativel com o Bourne Shell;

    Korn Shell(ksh): Upgrade do Bourne Shell

    C Shell(csh): Mais usado no BSD

    A) II indica que esse comando, no início do arquivo, irá mostrar para o shell que o arquivo é um script bash e que deve ser executado no Bash Shell.

    Não é script Bourne-Again Shell, e sim, Bourne Shell[1]

    B) I lista os adaptadores, seus respectivos endereços IP e interfaces configuradas com IPv4 usando comando do Microsoft Shell Script Active Directory.

    De fato, o comando em questão lista todos os adaptadores e seus respecitos endereços IPs e interfaces configuradas com IPV4 e IPV6. Embora não mencione IPV6, o erro da questão não eh esse, mas dizer que esse comando é do Microsoft Shell Script Active Directory. O correto é pura e simplesmente Power Shell.

    C) III é um trecho em Groovy, em que pode-se incluir o conteúdo de uma variável ou o resultado de uma expressão dentro de uma string sem usar o operador + como é feito em Java.

    Não conheco essa linguagem. Melhor não opinar.

    D) I é um comando PowerShell que permite visualizar as configurações de rede atuais dos adaptadores.

    De fato, o comando em questão é do Power Shell e, de fato, ele lista todos os adaptadores e seus respecitos endereços IPs e interfaces configuradas com IPV4 e IPV6. Então, acho que essa alternativa também está certa.

    E) III é um trecho a ser interpretado pelo Bash Shell, no qual apenas caracteres alfanuméricos podem ser utilizados como identificadores válidos de variáveis e as strings devem ser especificadas entre aspas triplas.

    Não tem nada a ver com o Bash Shell, mas com a linguagem groovy, como cita a letra C.

    Logo, acho q essa questão deveria ser anulada por conter duas alternativas corretas

    Fonte:

    [1] Programação Shell Linux, J Cesar Neves, 4 edição.


ID
2523952
Banca
FCC
Órgão
ARTESP
Ano
2017
Provas
Disciplina
Programação
Assuntos

Existe uma ferramenta muito útil na administração remota de sistemas baseados em Linux, por meio da qual é possível fazer login em sessões remotas de shell, possibilitando gerir servidores à distância. Para se conectar remotamente ao servidor hipotético remote_host usando o usuário remoto remote_username, a sintaxe correta de uso é

Alternativas
Comentários
  • Letra D

    If your username is different on the remote system, you can specify it by using this syntax:

    ssh remote_username@remote_host

     

    Fonte: https://www.digitalocean.com/community/tutorials/how-to-use-ssh-to-connect-to-a-remote-server-in-ubuntu

  • SSH é uma ferramenta útil para a administração remota de sistema Unix podendo ser usada, por exemplo, para gerir servidores à distância. Uma ferramenta equivalente para Windows é a PuttY. A sintaxe do comando é:

    ssh login@dominio

    Login = nome de usuário e senha

    Dominio = nome do servidor

    Ex:

    ssh roger_user@google

    GABARITO: E

     

     


ID
2626705
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Programação
Assuntos

Acerca de programação shell para a criação de scripts, julgue o item a seguir. 

O comando programaA | programaB pode ser utilizado para redirecionar a saída padrão do programaA para a entrada padrão do programaB

Alternativas
Comentários
  • Isso é basicamente um enfileiramento de comandos igual utilizado no linux.

     

    Exemplo: 

    history | grep "termo". Após executar o comando history (listando todos os comandos utilizados) ele ire efetuar uma busca nessa lista pelo termo pesquisado. 

     

    programaA | programaB | programaC | programaN... 

     

    Resposta: Certo!

  • Questão "presente".

  • Pegadinha a questao, no caso eles perguntam se "pode ser" usado, no caso pode sim, mas para direcionamento de saidas e necessario o > ou >>

  • REDIRECIONAMENTO NO SHELL

    Toda saída gerada por um comando no bash (shell) é direcionada para o output padrão, no caso o terminal, podemos trabalhar com a saída do comando direcionado-a para outro comando ou não direcionando para nem um local (null), entre outras opções.

    PIPE |, serve para enviar a saída de um comando para a entrada de outro, muito utilizado e de grande importância para o GNU.


ID
2626708
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Programação
Assuntos

Acerca de programação shell para a criação de scripts, julgue o item a seguir. 


O comando locate é utilizado para encontrar o local onde os comandos estão armazenados.

Alternativas
Comentários
  • O comando LOCATE pesquisa em uma base de dados de nomes de arquivos por nomes que satisfaçam um determinado padrão. Isto é, ele executa a busca a partir de uma base. Por questões de constantes alterações na arvore de arquivos e diretórios, é necessário que esta base de dados também seja atualizada. Esta base é construída através do comando updatedb.

     

    Fonte: https://www.linuxdescomplicado.com.br/2011/11/saiba-como-usar-comando-find-e-locate.html

  • Gabarito Errado

    O comando locate realiza consultas rápidas de arquivos, porém, suas buscas não são feitas em tempo real... a procura é feita através de uma base de dados criada pela seguinte sintaxe: 

    # updatedb 

    Uma boa prática é programar através de um agendador de tarefas para executar o updatedb de acordo as necessidades, assim, a base de dados estará sempre atualizada. 

    A utilização do locate é bem simples, exemplo: 

     locate teste.txt 
     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • O comando que informa qual a localização do binário de um comando é o whreis.

     

    WHEREIS(1)                       User Commands                      WHEREIS(1)

    NAME
           whereis  -  locate the binary, source, and manual page files for a com‐
           mand

    SYNOPSIS
           whereis [options] [-BMS directory... -f] name...

    DESCRIPTION
           whereis locates the binary, source and manual files for  the  specified
           command  names
    .

     

    Bibliografia: Manual comando whreis

     

  • ou você pode usar o comando "which"

  • O comando locate é utilizado para realizar consultas ou buscas em base de dados e não para encontrar o local onde os comandos estão armazenados, é uma opção ao comando find que é utilizado para pesquisar arquivos.

    GABARITO: ERRADO


ID
2631244
Banca
FAURGS
Órgão
TJ-RS
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere o seguinte trecho de um shellscript denominado primeiro.csh :


#!/bin/csh

#

read nome

echo “Hello world” $nome


Com relação a esse shell scritp, é correto afirmar que

Alternativas
Comentários
  • A) Nem todas as linhas com # sao necessariamente comentarios, no caso da primeira linha e sobre o interpretador

    B) Gabarito

    C) E necessario dar permissao primeiro e depois compilar o arquivo, ou seja primeiro chmod e depois o ./priemiro.csh para executar

    D) Nao e necessario colocar extensao, o que vai determinar o shell a ser usado e o que estiver no #!

    E) No caso o parametro read le um parametro de entrada, no sentido de inserir o parametro na variavel, no caso o script depois que executado ira esperar o usuario digitar e vai inserir na variavel nome.

  • Questão dúbia, com possibilidade de alternativas corretas na B e E!


ID
2636659
Banca
UECE-CEV
Órgão
DETRAN-CE
Ano
2018
Provas
Disciplina
Programação
Assuntos

Um script executável no interpretador de comandos Bash do GNU/Linux deve começar com os seguintes caracteres na primeira linha:

Alternativas
Comentários
  • Caso a primeira linha de um script comece por #! , o shell entenderá que o que vem a seguir é o caminho (path) para o interpretador que será usado por este script. Assim sendo, é normal encontrarmos scripts começados por:

     

    # ! / bin / bash

    ou

    # ! / bin / sh

     

     

     

    Letra D

     

    Fonte:

    Programação Shell Linux -11ª edição - Julio Cezar Neves


ID
2774545
Banca
COPEVE-UFAL
Órgão
UFAL
Ano
2018
Provas
Disciplina
Programação
Assuntos

#!/bin/bash
a=0;
for i in $(seq 1 3 10);
do
a=$(expr $i + 1)
done
echo $a

Qual o resultado da execução do código?

Alternativas
Comentários
  • O comando (seq 1 3 10) nos fala: conte de 1 até 10, andando de 3 em 3, portanto: 1,4,7,10

     

    A variável a, assume os seguintes valores após a execução do comando (expr...): 2, 5, 8, 11, pois é somado 1 a variável $i

                                Como o último valor de $a  é 11, o gabarito é a ALTERNATIVA E.

     

    Obs.: Se o echo $a estivesse dentro do laço do .. done, o código iria nos retornar: 2,5,8,11


ID
2774551
Banca
COPEVE-UFAL
Órgão
UFAL
Ano
2018
Provas
Disciplina
Programação
Assuntos

#!/bin/bash

i=3;

n=0;

while [ $n -le 3 ]

do

let n++

done

echo $(($i * $n))


Qual o resultado da execução do código?

Alternativas
Comentários
  • i=3;

    n=0;

    while [ $n -le 3 ] // Enquanto $n (Valor de N) for -le (menor ou igual) a 3 , execute codigo do do até o done e repete

    do

    let n++ // Toda vez que entra, adiciona 1 em n

    done

    echo $(($i * $n)) // $i * $n = 3 x 4 = 12

    O ponto importante a se lembrar é que quando n = 3 , ele entrará de novo no while e sairá com valor 4,


ID
3064075
Banca
UFMG
Órgão
UFMG
Ano
2019
Provas
Disciplina
Programação
Assuntos

Expressões regulares no contexto da programação shell são

Alternativas
Comentários
  • Expressão regular: é capaz de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres.

    Observe que sua função é identificar não de corrigir o que você digitou, pois a expressão regular não é um corretor ortográfico como o word, por exemplo. Sendo assim, a letra E está errada.

    Gabarito letra A

  • Olá!

    Gabarito: A

    Bons estudos!

    -Se você não está disposto a arriscar, esteja disposto a uma vida comum. – Jim Rohn


ID
3064087
Banca
UFMG
Órgão
UFMG
Ano
2019
Provas
Disciplina
Programação
Assuntos

Assinale a alternativa que explica o conceito de metacaracteres no contexto da programação em shell script.

Alternativas
Comentários
  • ✅Gabarito(C)

    São exemplos de metacaracteres - ? * + ^ $ | [ ] { } ( ) \. - Cada um deles tem sua função específica.

    Uma expressão regular é formada por caracteres normais como “a”, “9”, “M” e por caracteres chamados metacaracteres, como “$”, “?” e “*”. 

    Eles servem para dar mais poder às pesquisas, informando padrões e posições impossíveis de se especificar usando somente caracteres normais. Com eles você pode especificar padrões como “um númedo de três dígitos” e “uma data no formato DD/MM/AAA”.

    Fontes:

    https://aurelio.net/regex/guia/metacaracteres.html

    http://tassinfo.com.br/shell-script/metacaracteres-expressoes-regulares/

  • Oi!

    Gabarito: C

    Bons estudos!

    -Os únicos limites da sua mente são aqueles que você acreditar ter!


ID
3102739
Banca
VUNESP
Órgão
Prefeitura de Valinhos - SP
Ano
2019
Provas
Disciplina
Programação
Assuntos

Sem a shebang, um shell script executado em um servidor Linux

Alternativas
Comentários
  • A questão exige do candidato conhecimentos sobre shell script executados em um ambiente Linux.

    Em síntese, podemos dizer que shell script é um programa de computador que contém uma série de comandos, os quais são executados pelo shell do Unix. O shell do Unix é um interpretador de linha de comando [1]

    Os principais interpretadores de comandos shell são o bash e sh.

    o shebang que o enunciado se refere nada mais é que a sequência de caracteres #! colocado no início de um script, a fim de especificar o interpretador que será o responsável pela execução do script [2].

    Por exemplo [2]:

    #!/bin/sh – executa o arquivo usando o shell Bourne no diretório /bin
    #!/bin/bash –executa o arquivo usando o shell Bash no diretório /bin
    #!/usr/bin/env python3 – executa o arquivo com interpretador python 3 no diretório /usr/bin/env

    Quanto ao resultado da execução de um script sem o shebang em um shell linux, segundo discussão em um fórum oficial do UNIX, o comportamento padrão dos sistemas baseados em Unix seria tentar a execução do script com o shell Bourne (bin/sh), independentemente do shell do usuário [3].

    Logo, a depender da linguagem de script utilizada, ao não se especificar o shebang, o shell Unix pode não ser capaz de executar o código no interpretador correto.

    Por exemplo, se você escrever um script em python  e não especificar o shebang, obviamente não será possível executar esse código com o shell Bourne (bin/sh).

    Gabarito o professor: Letra D.

    REFERÊNCIAS:
      [1] Wikipedia. Shell script. Disponível em: Site da Wikipedia na língua inglesa. Acesso em: 12/8/2020; [2] Wikipedia. Shebang (Unix) Disponível em: Site da Wikipedia na língua inglesa. Acesso em: 12/8/2020. [3] Unix. Scripts without shebang. Disponível em: Fórum de discussões do site oficial Unix. Acesso em: 12/8/2020.
  • A primeira coisa que devemos colocar em um shell script: o #! (vulgarmente chamado de shebang ou hashbang).

    O #! shebang serve para dizer ao kernel qual será o interpretador a ser utilizado para executar os comandos presentes no arquivo.

    Quando executamos um arquivo que começa com #!, o kernel abre o arquivo e pega tudo que está escrito após o shebang até o final da linha. Em seguida ele tenta executar um comando com o conteúdo desta string adicionando como parâmetro o nome do próprio arquivo.

    Portanto se você tem arquivo executável chamado meuscript.sh, contendo um shell-script e começando com #!/bin/bash, quando você executa esse arquivo o kernel vai executar /bin/bash meuscript.sh.


ID
3109003
Banca
FCC
Órgão
SANASA Campinas
Ano
2019
Provas
Disciplina
Programação
Assuntos

Para criar no Linux um shell script chamado teste.sh, em linha de comando, usam-se os editores

Alternativas
Comentários
  • Bem simples:

    Não vou citar todos, apenas os mais utilizados editores para linux shell:

    -vi, vim, nano, leafpad, notepad++

  • @Alex: a questão quer saber editores de texto via linha de comando. O notepad++ é GUI.

  • Gauge é um framework de código aberto e gratuito para escrever e executar testes de aceitação.

    https://docs.gauge.org/overview.html?os=linux&language=javascript&ide=vscode


ID
3187399
Banca
FCC
Órgão
TJ-MA
Ano
2019
Provas
Disciplina
Programação
Assuntos

Considere o seguinte Script bash para Linux, que não contém erros.


# ! / bin / bash

COUNT=0

for i in `ls`

do

COUNT=$((COUNT+1))

done

..I..


Para que este script seja executado, em condições ideais, e seja impresso na tela o valor contido no contador, a lacuna I deve ser corretamente preenchida com:

Alternativas
Comentários
  • Para mim B e a D usam a mesma notação, não consigo encontrar o erro. Gabarito atual B.

  • O erro é que o comando conta os arquivos na pasta por causa do comando ls.

  • A sintaxe correta do comando echo é está: echo "Olá mundo" ou seja, será impresso tudo que estiver dentro das aspas duplas, e os textos que começarem com cifrão serão interpretados como variáveis.

    a) Incorreta, pois irá imprimir o texto literal: Nenhum usuário encontrado

    b) CORRETA, gabarito da questão, observe a linha: for i in `ls` estamos utilizando somente o comando ls sem chave de recursividade, portanto iremos contar os arquivos da pasta atual e só.

    c) Incorreta, a sintaxe do comando echo está incorreta, pois não é utilizado + $COUNT +

    d) Incorreta, embora a sintaxe do comando esteja correta, não é o que o examinador está pedindo. Pois o comando ls não está usando recursividade, para validar como correta a alternativa deveriamos estar usando o comando for i in `ls - R`

    e) Incorreta, por dois motivos: sintaxe incorreta do comando echo e função incorreta do comando ls


ID
3220042
Banca
VUNESP
Órgão
FUNDUNESP
Ano
2016
Provas
Disciplina
Programação
Assuntos

O administrador de um servidor com sistema operacional Linux executou o seguinte comando em um terminal Bash:

uname -a

Como resultado, o administrador obteve

Alternativas
Comentários
  • O comando uname é um comando utilizado em sistemas Unix/Linux para exibir informações sobre a máquina que se está operando, como por exemplo,  o sistema operacional que está instalado, versão do kernel, etc. 

    Fonte com mais informações: https://angelitomg.com/blog/o-comando-uname/

    GABARITO ALTERNATIVA A

  • uname = Unix Name

  • a-

    O comando uname -a permite obter informação detalhada acerca dum servidor:

    https://pt.wikibooks.org/wiki/Guia_do_Linux/Iniciante%2BIntermedi%C3%A1rio/Comandos_diversos/uname


ID
3220045
Banca
VUNESP
Órgão
FUNDUNESP
Ano
2016
Provas
Disciplina
Programação
Assuntos

Em um script de shell Bash, um comentário deve ser iniciado pelo caractere

Alternativas
Comentários
  • #Comentário aqui

  • Comments can be added at the beginning on the line or inline with other code: # This is a Bash comment. echo "This is Code" # This is an inline Bash comment.

    https://linuxize.com/post/bash-comments/


ID
3220048
Banca
VUNESP
Órgão
FUNDUNESP
Ano
2016
Provas
Disciplina
Programação
Assuntos

Considere o seguinte trecho de um arquivo de shell script bash:

$ x=”Este texto para teste.”
$ echo ${x% *}

A execução do trecho de script resultará na apresentação de

Alternativas
Comentários
  • E

  • echo ${x% *} serve para remover o menor trecho possível do final de uma string.

    Letra E

  • ${x% *} -> Imprime tudo que tiver antes do último espaço em branco

    .

    https://stackoverflow.com/a/17567940

  • https://imgur.com/a/hE1xXGD


ID
3338968
Banca
IDECAN
Órgão
UNIVASF
Ano
2019
Provas
Disciplina
Programação
Assuntos

A definição de variáveis é uma funcionalidade importante da linguagem de scripts BASH, presente na maioria das distribuições Linux. Assinale a alternativa que indica a maneira correta de definir uma variável em BASH.

Alternativas
Comentários
  • Quando se atribui uma string no bach, é importante saber 3 coisas (foi o que a questão cobrou):

    O bach é uma linguagem fracamente tipada. Isso quer dizer que não é preciso declarar o tipo (ex.: int, string, char, dentre outras) <- Eliminamos a letra D e E;

    Não é usado o cifrão ($) para atribuir, mas sim o nome da variável e o sinal de igual. Ex.: NOME= "João da Silva" <- Já podemos eliminar a letra A e a letra B).

    Até aqui, já encontramos o gabarito, mas faço questão de comentar a 3ª coisa.

    Para declarar uma string no bash, é necessário que o valor esteja entre aspas. <- Outro erro de sintaxe encontrado na letra B.

    Gabarito letra C

  • O "$" é para retornar o valor da variável.

    .

    NOME="João da Silva"

    echo $NOME

  • E semelhante à forma de declaração da variável em Python

    nome = "João"

    idade = 32

    vivo = True


ID
3359635
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2020
Provas
Disciplina
Programação
Assuntos

O Shell é uma linguagem universal entre sistemas baseado em Unix e, em alguns casos, pode ser usado em outros sistemas. Uma das vantagens dessa linguagem é o redirecionamento, tanto de entrada quanto de saída. O comando projeto >> arquivo, por exemplo, realiza, especificamente,

Alternativas
Comentários
  • Segundo Shell Script Profissional, temo como redirecionadores:

    < Redireciona a entrada padrão

    > Redireciona a saída padrão

    2> Redireciona a sáida de erro

    >> Redireciona a saída padrão, anexando ao final do arquivo

    2>> Redireciona a saída de erro, anexando ao final do arquivo

    Sabendo disto,  O comando projeto >> arquivo redireciona a saída padrão para arquivo, anexando ao final.

    Portanto, GABARITO ALTERNATIVA C

  • Para alterar a saída dos comandos utilizamos os sinais de “>” e “>>”. O sinal de “>” altera a saída padrão, sobrescrevendo o destino, enquanto o sinal de “>>” altera a saída padrão mas adiciona o conteúdo ao destino. 

  • ">>" append

    ">" overwrite

  • >> = 1>>

    ACRESCENTA/ADICIONA AO FINAL A SAÍDA PADRÃO.

    GABARITO E


ID
3379633
Banca
INSTITUTO AOCP
Órgão
UFOB
Ano
2018
Provas
Disciplina
Programação
Assuntos

Shellscript é uma linguagem de script utilizada em diversos sistemas operacionais. Sobre Shellscript, incluindo Script Bash, Groovy e Powershell, julgue o item a seguir.


Pode-se, considerando Script Bash, utilizar a expressão id -u para verificar se o usuário atual e usuário tem privilégios de superusuário. Caso tenha, o valor resultado será zero.

Alternativas
Comentários
  • -u, --user (print user id)

    The root user's id is 0, so that's correct!


ID
3379636
Banca
INSTITUTO AOCP
Órgão
UFOB
Ano
2018
Provas
Disciplina
Programação
Assuntos

Shellscript é uma linguagem de script utilizada em diversos sistemas operacionais. Sobre Shellscript, incluindo Script Bash, Groovy e Powershell, julgue o item a seguir.


Para manter o Windows PowerShell seguro, a política de execução padrão no Windows PowerShell é Restrita. Essa política permite executar os cmdlets, mas não em scripts.

Alternativas
Comentários
  • Quando você tenta executar um script no Microsoft Azure Active Directory Module para Windows PowerShell, você recebe mensagens de erro. Esse problema pode ocorrer se a diretiva de execução é definida como restrito... Por padrão, o Windows PowerShell é executado na política de execução restrita. Esse modo é o modo mais seguro no qual o Windows PowerShell opera apenas como um shell interativo

    Fonte:

    https://support.microsoft.com/pt-br/help/2411920/you-can-t-run-scripts-in-azure-active-directory-module-for-windows-pow


ID
3532441
Banca
INSTITUTO AOCP
Órgão
IBGE
Ano
2019
Provas
Disciplina
Programação
Assuntos

Utilizando a linguagem de script PowerShell, Vinicius pretende utilizar um operador de comparação que permite fazer a comparação tanto de variáveis como de números. Para executar a operação “maior ou igual” em PowerShell, qual operador ele deve utilizar?

Alternativas
Comentários
  • -gt (greater than)

    -le (less or equal)

    -eq (equal)

    -ge (greater or equal)

    -lt (less than)

  • -ge -> greater equal

  • GABARITO: D

    Os operadores de comparação ficaram assim:

    • -eq: igual a;
    • -ne: diferente de;
    • -ge: maior ou igual a;
    • -gt: maior que;
    • -le: menor ou igual a;
    • -lt: menor que;
    • -like
    • -notlike
    • -match: Combina com expressão regular;
    • -notmatch: Não combina com expressão regular;
    • -contains
    • -notcontains
    • -is
    • -isnot


ID
3625216
Banca
CONSULPLAN
Órgão
SDS-SC
Ano
2008
Disciplina
Programação
Assuntos

Que parâmetro devemos usar dentro de um Shell script para saber quantos parâmetros foram passados pela linha de comando?

Alternativas
Comentários
  • $$ - PID (Process ID) do processo em execução

    $# - Número de parâmetros

    $0 - Nome do arquivo do script que está sendo executado

    $@ - Todos os parâmetros em uma lista

    $! - ID do processo do último comando executado em segundo plano

    Gabarito B


ID
3634975
Banca
CONSULPLAN
Órgão
EMBRAPA
Ano
2008
Disciplina
Programação
Assuntos

Dentro de um Shell script no ambiente Linux, o que nos informa o parâmetro $$?

Alternativas
Comentários
  • $$ = Gabarito

    S_ último argumento do último comando executado

  • D: ID do processo do script.


ID
3663103
Banca
Quadrix
Órgão
DATAPREV
Ano
2012
Disciplina
Programação
Assuntos

O Secure Shell (SSH) é, ao mesmo tempo, um protocolo e uma aplicação para acesso remoto. A aplicação que implementa o protocolo é dividida em dois módulos; um fica no cliente e o outro, no servidor. O módulo que fica no servidor é um script para inicialização ou parada de um serviço. Este módulo é o:

Alternativas
Comentários
  • Aquele momento que você descobre que SSHD não é só solid state hybrid drive e sim o gabarito dessa questão


ID
3715957
Banca
IADES
Órgão
TRE-PA
Ano
2013
Disciplina
Programação
Assuntos

A linguagem de script batch foi criada inicialmente para o sistema operacional MS-DOS e é normalmente usada para automatizar tarefas de instalação ou configuração do sistema. Assinale a alternativa que possui o nome de um script batch do Windows.

Alternativas
Comentários
  • Letra B: ele é um arquivo .bat

  • b-

    AUTOEXEC.BAT is a system file in the root directory of the boot device. On Windows NT and its derivatives, Windows 2000, Windows Server 2003 and Windows XP, the equivalent file is called AUTOEXEC.NT and is located in the %SystemRoot%\system32 directory. The file is not used during the operating system boot process; it is executed when the MS-DOS environment is started, which occurs when a DOS application is loaded.

    https://en.wikipedia.org/wiki/AUTOEXEC.BAT

  • Um arquivo com extensão .bat pode ser escrito como um conjunto de comandos executados em lote.

    Gabarito: B de .bat hehehe


ID
3735130
Banca
FAPEC
Órgão
UFMS
Ano
2020
Provas
Disciplina
Programação
Assuntos

Considere o seguinte bash script (Linux):

meuscript.sh
#!/bin/bash
echo 'Digitado: '$1
: '
i=0
while [ $i -le 2 ]
do
mkdir $1
((i++))
done

Assinale a alternativa que representa o que ocorrerá quando for executado ($bash meuscript.sh 192.168.0.1).

Alternativas
Comentários
  • ✅Gabarito(A)

    #!/bin/bash echo 'Digitado: '$1 : ' i=0 while [ $i -le 2 ] do mkdir $1 ((i++)) done '

    Executado $bash meuscript.sh 192.168.0.1

    O tipo $1 está relacionado com o argumento passado via linha de comando logo após o nomes do script.

    $0 corresponde ao nome do script, $1 ao primeiro argumento, $2 ao segundo argumento, e assim sucessivamente.

    Fonte:https://www.devmedia.com.br/introducao-ao-shell-script-no-linux/25778

  • Não teria que criar um diretório?


ID
3735178
Banca
FAPEC
Órgão
UFMS
Ano
2020
Provas
Disciplina
Programação
Assuntos

Em bash script, qual é a instrução para fechar uma estrutura case?

Alternativas
Comentários
  • No shell, para fechar a estrutura aberta, basta ver que é a palavra de tráz pra frente

    case esac

    O mesmo ocorre no if

    fi if

  • ✅Gabarito(E)

    Sintaxe da Estrutura Case:

    -------------------------------------

    case VARIAVEL in

     CASO_1)

      AÇÕES_1

     ;;

     CASO_2)

       AÇÕES_2

     ;;

    CASO_N)

      AÇÕES_N

    ;;

    esac

    -------------------------------------

    Fonte:https://www.devmedia.com.br/introducao-ao-shell-script

    -no-linux/25778


ID
4962481
Banca
FCC
Órgão
BANESE
Ano
2012
Provas
Disciplina
Programação
Assuntos

Considere:


I. Se o Shell encontra dois campos separados pelo sinal de igual (=), ele identifica a sequência como uma atribuição. Dessa forma, para a sequência $ custo = 500, o Shell atribui 500 para a variável custo.

II. Se a instrução Shell $ cat > Dados criará o arquivo Dados, então a instrução $ cat >> Dados irá adicionar mais informações no final desse arquivo.

III. Na instrução Shell $ rm /tmp/arqtemp$$ 2> /dev/null, /dev/null tem como função ocultar a mensagem de erro, caso o arquivo não exista.


Está correto o que se afirma APENAS em

Alternativas
Comentários
  • Confesso que se tivesse a opção: TODAS AS ALTERNATIVAS eu marcaria fácil.

    Não vejo erro na alternativa I, exceto pelo fato de haver espaço entre custo o sinal de igual e 500; Acredito que o correto seria: custo=500 ( sem espaço)

    GABARITO ALTERNATIVA E

    Obs.: Se cometi algum engano, ou há outro erro na alternativa me mande uma mensagem!


ID
4966246
Banca
VUNESP
Órgão
MPE-ES
Ano
2013
Provas
Disciplina
Programação
Assuntos

Nos scripts desenvolvidos para sistemas Unix, é comum a ocorrência dos caracteres “#!” no início do arquivo. Esses dois caracteres, conhecidos como shebang, têm a função de

Alternativas

ID
4966267
Banca
VUNESP
Órgão
MPE-ES
Ano
2013
Provas
Disciplina
Programação
Assuntos

Na criação de arquivos de lote no Windows Server 2003 (também conhecido como arquivo batch) é possível utilizar processamentos condicionais para selecionar quais comandos devem ser executados de acordo com o estado do sistema. Semelhante a outras linguagens de programação, essa seleção é feita por meio de uma expressão que produz um resultado booleano. Para a construção de tais expressões, as linguagens de script dispõem dos operadores de comparação “igual”, “diferente”, “menor”, “menor ou igual”, “maior” e “maior ou igual”. Nos arquivos de lotes do Windows Server 2003, esses operadores são, respectivamente:

Alternativas
Comentários
  • d-

    comparison operators:

    EQU     | equal to

    NEQ     | not equal to

    LSS     | less than

    LEQ     | less than or equal to

    GTR     | greater than

    GEQ     | greater than or equal to

    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/if


ID
5202919
Banca
FURB
Órgão
Câmara de Timbó - SC
Ano
2019
Provas
Disciplina
Programação
Assuntos

Você recebeu a tarefa de criar um comando PowerShell para parar os serviços em um computador Windows: devem ser parados todos os serviços cujo tipo de Inicialização está configurada para Manual e que estão rodando no momento. Escolha a alternativa que contém o comando PowerShell que atende a esses requisitos:

Alternativas
Comentários
  • ✅Gabarito(B)

    Segue algumas definições que já ajudam a entender o gabarito.

     

    Get-Service: obter os serviços de um computador.

    Stop-Service: interromper a execução de um serviço.

    Where-Object: O PowerShell inclui um cmdlet Where-Object que permite testar cada objeto no pipeline e apenas passá-lo pelo pipeline caso ele atenda a determinada condição de teste. 

    -eq: Consiste em um operador de comparação, que equivale ao significado "é igual".

    $_ : Os blocos de script de Where-Object usam a variável especial "$_ para fazer referência ao objeto atual no pipeline. 

    Na documentação da Microsoft está bem especificado e detalhado.

    Fonte: https://docs.microsoft.com/pt-br/powershell/scripting/samples/managing-services?view=powershell-7.1

    Fonte: https://docs.microsoft.com/pt-br/powershell/scripting/samples/removing-objects-from-the-pipeline--where-object-?view=powershell-7.1


ID
5202925
Banca
FURB
Órgão
Câmara de Timbó - SC
Ano
2019
Provas
Disciplina
Programação
Assuntos

Ao que compete ao Script Shell, afirma-se:

I- Os comentários são iniciados com /* e finalizados com */
II- A sintaxe correta para finalizar o comando de fluxo case é esac
III- A primeira linha de um script normalmente começa com #!, seguido do caminho do interpretador a ser utilizado com o script: /bin/sh, por exemplo.
IV- #$ contém o número de argumentos passado para o script.

É/são correta(s):

Alternativas
Comentários
  • I. Incorreta, os comentários de uma linha em shell script são através do #

    II. Correta, é case ao contrário: esac;

    III. Correta.

    IV. Incorreta, nesta o examinador arrebentou com quem tava desatento. O correto é $# e não #$

    GABARITO ALTERNATIVA B


ID
5346976
Banca
DAE de Bauru - SP
Órgão
DAE-Bauru
Ano
2021
Provas
Disciplina
Programação
Assuntos

A definição de variáveis é uma funcionalidade importante da linguagem de scripts BASH, presente na maioria das distribuições Linux. Assinale a alternativa que indica a maneira correta de definir uma variável em BASH.

Alternativas
Comentários
  • ✅Gabarito(C)  

    Gabarito Divergente!

    Sintaxe

    <nomeDaVariavel> <RECEBE> <valor>.

    Declarações CORRETAS

    tamanho_calca_42="Mentira nem uso 42"

    nome="Jefferson"

    _Esta_e_minha_rua="Rua pedro dos santos"

    NumeroDaMinhaCasa="102"

    CPF_E_RG="CPF: xxxxxxxx-xxxxxx.xx RG: y.yyy.yyyy"

    Fonte: https://www.vivaolinux.com.br/dica/Variaveis-em-bash

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    Outra questão totalmente semelhante, banca IDECAN de 2019.

    A definição de variáveis é uma funcionalidade importante da linguagem de scripts BASH, presente na maioria das distribuições Linux. Assinale a alternativa que indica a maneira correta de definir uma variável em BASH.

    Resposta: NOME="João da Silva"

    Fonte: Q1112987

  • Concordo com o colega @Luciano: deveria ser GAB C, há várias questões do QC corroborando isso.

     

    O "$" no início significa que o comando está sendo executado no terminal e com um usuário comum, diferente do "#" que indica ser o usuário root. Isso não tem relação alguma com a sintaxe do Shell Script. Se quisesse colocar essa indicação, deveria ter um espaço entre o sinal e o comando:

    • $ NOME="linha digitada em terminal"
    • NOME="linha digitada em arquivo"

ID
5379844
Banca
CESPE / CEBRASPE
Órgão
MPE-AP
Ano
2021
Provas
Disciplina
Programação
Assuntos

Assinale a opção que indica o resultado apresentado para o seguinte script.

#!/bin/bash

echo "Resultado..."

for i in {0..12..2}

do

a=$ (($ i%3))

if [ $ a -eq 0 ]

then

echo "Alo valor $ i"

fi

done

Alternativas
Comentários
  • GAB B.

    Duas formas diferentes de fazer isso:

     

    // inicial .. final .. step

    for i in {0..10..2}

     

    // inicial step final (sim, o step é no meio)

    for i in `seq 0 2 10`

  • for i in {0..12..2} equivale a for(i=0;i<=12;i+=2)

  • Falar sobre as principais linhas

    1. #!/bin/bash
    2. echo "Resultado..."
    3. for i in {0..12..2} do
    4. a=$ (($ i%3))
    5. if [ $ a -eq 0 ]
    6. then
    7. echo "Alo valor $ i"
    8. fi
    9. done

    1 - Corresponde ao shebang, também conhecido como hashbang.

    2 - Comando de saída responsável por imprimir "Resultado..."

    3 - Estrutura de seleção, como foi comentado equivale: (i=0; i<=12; i+=2)

    4 - Utilização do operador (%) de resto da divisão, onde a variável "a" recebe o valor ($ i%3), que nada mais é do que o resto da divisão dos números entre 0 e 12 (da condição do for) por 3.

    5 - Existe uma comparação para verificar se o valor da variável é igual a 0, caso seja será impresso "Alo valor $i".

    Os casos em que são iguais: 0, 6 e 12 (o resto da divisão desses números por 3 é 0).

    Todas as impressões serão na mesma linha!

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    Para Conhecimento

    inteiro1 -eq inteiro2: inteiro1 possui o mesmo valor que inteiro2;

    inteiro1 -ne inteiro2: inteiro1 não possui o mesmo valor que inteiro2;

    inteiro1 -gt inteiro2: inteiro1 é maior que inteiro2;

    inteiro1 -ge inteiro2: inteiro1 é maior ou igual a inteiro2;

    inteiro1 -lt inteiro2: inteiro1 é menor que inteiro2;


ID
5386426
Banca
VUNESP
Órgão
Prefeitura de Ilhabela - SP
Ano
2020
Provas
Disciplina
Programação
Assuntos

Considere o Shell Script a seguir.

#!/bin/bash

prog1 && echo 1

prog2 || echo 2

prog3 ; echo 3

Sobre esse script, pode-se afirmar, corretamente, que o comando

Alternativas
Comentários
  • Introdução.

    • Se entender alguns operadores de controle em shell, matará a questão. Nota: os dois mais chatos são: && e ||. Contudo, sem stress. Vamos ver abaixo.

    & = deixa em segundo plano;

    && = só é executado se o comando à esquerda for verdadeiro, ou seja. 0;

    II = só é executado se o comando à esquerda for falso, ou seja, 1, por exemplo;

    ; = execução independente, ou seja, um programa por vez <- Já já entro em detalhes, mas olhe a letra E (kkk).

    • Talvez se pergunte: "Fabiano, agora confundiu minha cabeça, pois nunca vi 0 ser verdadeiro e 1 ser falso!!!!!" Meu guerreiro(a), eu também fiquei na mesma, até que pesquisando, descobri o porquê.
    • O && e || não são testes lógicos, e sim programas armazenados no /bin/bash. Alguns programas fazem isso, pois quando dá algum erro preciso saber o que aconteceu e quando é bem-sucedido, não preciso saber, por isso 0 (famosa frase: "Compilou?! Bola pra frente" kkkkkkk).

    Aplicação:

    "A" e "B" ERRADAS. Por quê? R.: prog1 && echo 1 <- não será executado em segundo plano, mas sim será executado se o progr1 for bem-sucedido (0).

    "C" ERRADA. Por quê? R.: prog2 || echo 2 <- vimos que é o contrário, somente será executado se retornar diferente de zero.

    prog3 ; echo 3 <- o echo 3 será executado independente do retorno. Com isso, a D está errada e a letra E está correta.

    Referências:

    Por que 0 é verdadeiro, mas falso é 1 no shell? https://qastack.com.br/programming/2933843/why-0-is-true-but-false-is-1-in-the-shell

    Confusing use of && and || operators https://unix.stackexchange.com/questions/24684/confusing-use-of-and-operators


ID
5428033
Banca
UFMT
Órgão
UFMT
Ano
2021
Provas
Disciplina
Programação
Assuntos

Shell script é utilizado para automatizar rotinas computacionais. Sobre shell script, assinale a afirmativa correta.

Alternativas
Comentários
  • Gabarito: D

  • Gabarito: D.

    "Faça da dificuldade a sua motivação."


ID
5446345
Banca
CESPE / CEBRASPE
Órgão
PG-DF
Ano
2021
Provas
Disciplina
Programação
Assuntos

Julgue o item a seguir, referente a linguagem de scripts.


#!/bin/bash

x=0

while [ $x - le 2 ]

do

echo valor: $x

((x++))

done


O resultado do código shell script anterior será: valor: 3.

Alternativas
Comentários
  • Gabarito: E

    Os operadores do while:

    -le = menor igual

    -lt = menor que

    -ge = maior igual

    -gt = maior que

    -eq = igual

    -ne = diferente

    No caso dessa questão há um espaço separando o operador - le, portanto não irá compilar, porém caso retirarmos o espaço o resultado seria:

    valor: 0

    valor: 1

    valor: 2

    De qualquer maneira estaria errado.


ID
5519494
Banca
FURB
Órgão
Câmara de Timbó - SC
Ano
2021
Provas
Disciplina
Programação
Assuntos

É uma linguagem de script utilizada em alguns sistemas operacionais, principalmente em sistemas GNU/Linux. Com ele, nós conseguimos criar comandos para o Linux, ou melhor, criar tarefas para serem executadas de tempos em tempos, scripts de inicialização e muitas outras coisas.

Marque a alternativa CORRETA que está relacionada ao contexto acima:

Alternativas
Comentários
  • a) Shell script -> Linguagem de script de terminais Unix

    b) Powershell -> Linguagem de script de terminais Windows

    c) CMD -> Prompt de Comando

    d) Javascript -> Linguagem de script originalmente front-end

    e) PHP -> Linguagem de script back-end


ID
5607052
Banca
FGV
Órgão
Banestes
Ano
2021
Provas
Disciplina
Programação
Assuntos

No seu notebook rodando Windows 10, João pretende remover alguns arquivos presentes na pasta C:\xpto e, recursivamente, as respectivas subpastas em todos os níveis. Devem ser removidos somente os arquivos cuja última alteração tenha ocorrido há mais de 14 dias.


Por meio da PowerShell, o script adequado para essa remoção é:

Alternativas