AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 429039
Accepted
Abdulvakaf K
Abdulvakaf K
Asked: 2018-03-09 06:54:08 +0800 CST2018-03-09 06:54:08 +0800 CST 2018-03-09 06:54:08 +0800 CST

Qual é o valor de boolean (True e False) no conceito de Python e no conceito de shell?

  • 772

Estou trabalhando em coisas relacionadas ao sal. Lá eu vi a condição onlyif em documentos salt. Estou confuso com a declaração dada no documento.

Also be aware that the **boolean value** is determined by the **shell's** concept of True and False, rather than **Python's** concept of True and False.

Link: https://docs.saltstack.com/en/latest/ref/states/requisites.html

Meu palpite é

  `Shell         Python`

   True = 0      True = 1
  False = 1    False = 0

Por favor corrija-me se eu estiver errado.

linux shell
  • 1 1 respostas
  • 904 Views

1 respostas

  • Voted
  1. Best Answer
    Kusalananda
    2018-03-09T07:15:32+08:002018-03-09T07:15:32+08:00

    Na maioria das linguagens de programação que são capazes de tratar números inteiros como booleanos, um valor diferente de zero (não apenas 1) é "verdadeiro" e o valor zero é "falso".

    Por exemplo em C:

    int a = some_function();
    
    if (a) {
        puts("some_function returned a non-zero value");
    }
    

    ... e da mesma forma em Python (mas obviamente com sintaxe diferente).

    No shell, isso é menos útil, pois os utilitários gostariam de sinalizar o sucesso ou a falha em fazer o que eles gostariam de fazer, e uma falha pode precisar ser distinguida com mais detalhes do que apenas "eu falhei".

    Isso significa que existe um único status de saída, zero, que significa "sucesso", "tudo correu bem" ou "fiz o que deveria fazer" e que qualquer outro valor de saída deve ser considerado "falha". Alguns utilitários usam mais de um status de saída diferente de zero para permitir que o usuário saiba o que deu errado (consulte, por exemplo, "CÓDIGOS/VALORES DE SAÍDA" nos manuais de rsynce curl).

    Além disso, se um utilitário for interrompido por um sinal, o status de saída do utilitário será 128 mais o número do sinal (consulte kill -lem seu sistema).

    Do texto introdutório sobre "Shell & Utilities" no padrão POSIX (falando sobre várias seções de um manual, uma referência melhor é bem-vinda):

    A EXIT STATUSseção descreve os valores que o utilitário deve retornar ao programa de chamada, ou shell, e as condições que fazem com que esses valores sejam retornados. Normalmente, os utilitários retornam zero para conclusão bem-sucedida e valores maiores que zero para várias condições de erro. Se valores numéricos específicos forem listados nesta seção, o sistema deve usar esses valores para os erros descritos. Em alguns casos, os valores de status são listados de forma mais livre, como >0. Uma aplicação estritamente conforme não deve depender de nenhum valor específico na faixa mostrada e deve estar preparada para receber qualquer valor na faixa.

    Por exemplo, um utilitário pode listar zero como um retorno bem-sucedido, 1 como uma falha por um motivo específico e >1 como "ocorreu um erro". Nesse caso, condições não especificadas podem fazer com que 2 ou 3, ou outro valor, seja retornado. Um aplicativo em conformidade deve ser escrito para testar valores de status de saída bem-sucedidos (zero neste caso), em vez de confiar no único valor de erro específico listado neste volume de POSIX.1-2008. Dessa forma, tem portabilidade máxima, mesmo em implementações com extensões.


    Observe que as funções de biblioteca às vezes retornam valores diferentes de zero (e, portanto, "verdadeiros") para condições de erro. Por exemplo, o C padrão funciona fgetc()e fputc()retorna EOF(geralmente -1) em caso de erro, que é um valor "verdadeiro", pois é diferente de zero.

    Portanto, há uma diferença sutil entre a discussão sobre como os inteiros são interpretados como booleanos nas linguagens de programação e no shell e como as condições de erro são relatadas (esses são dois tópicos relacionados).

    • 2

relate perguntas

  • o que grep -v grep faz

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Como salvar um caminho com ~ em uma variável?

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve