SóProvas


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