GoGPT Best VPN GoSearch

favicon do OnWorks

testposix - Online na nuvem

Execute testposix no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando testposix que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas múltiplas estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online de Windows ou emulador online de MAC OS.

PROGRAMA:

NOME


teste - avalia a expressão

SINOPSE


teste [expressão]

[ [expressão] ]

DESCRIÇÃO


O teste a concessionária deverá avaliar o expressão e indique o resultado da avaliação
pelo seu status de saída. Um status de saída zero indica que a expressão avaliada como verdadeira
e um status de saída 1 indica que a expressão foi avaliada como falsa.

Na segunda forma do utilitário, que utiliza "[]" em vez de teste, o pedido deverá
certifique-se de que os colchetes sejam argumentos separados.

OPÇÕES


O teste utilidade não deve reconhecer o "−−" argumento da maneira especificada por
Diretriz 10 no volume de Definições Base do POSIX.1‐2008, Seção 12.2, Utilidade Sintaxe
orientações.

Nenhuma opção será suportada.

OPERANDOS


A aplicação deve garantir que todos os operadores e elementos das primárias sejam apresentados como
argumentos separados para teste utilidade.

As seguintes primárias podem ser usadas para construir expressão:

-b pathname
Verdadeiro se pathname resolve uma entrada de diretório existente para um bloco especial
arquivo. Falso se pathname não pode ser resolvido, ou se pathname resolve um
entrada de diretório existente para um arquivo que não é um arquivo especial de bloco.

-c pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um caractere especial
arquivo. Falso se pathname não pode ser resolvido, ou se pathname resolve um
entrada de diretório existente para um arquivo que não é um arquivo de caractere especial.

-d pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um diretório. Falso
if pathname não pode ser resolvido, ou se pathname resolve para um diretório existente
entrada para um arquivo que não é um diretório.

-E pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente. Falso se pathname
não pode ser resolvido.

−f pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo normal.
Falso se pathname não pode ser resolvido, ou se pathname resolve para um existente
entrada de diretório para um arquivo que não é um arquivo normal.

-g pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo que tem seu
conjunto de sinalizadores set-group-ID. Falso se pathname não pode ser resolvido, ou se pathname
resolve para uma entrada de diretório existente para um arquivo que não tem sua configuração
conjunto de sinalizadores de ID de grupo.

−h pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um link simbólico.
Falso se pathname não pode ser resolvido, ou se pathname resolve para um existente
entrada de diretório para um arquivo que não é um link simbólico. Se o componente final
of pathname é um link simbólico, esse link simbólico não é seguido.

−L pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um link simbólico.
Falso se pathname não pode ser resolvido, ou se pathname resolve para um existente
entrada de diretório para um arquivo que não é um link simbólico. Se o componente final
of pathname é um link simbólico, esse link simbólico não é seguido.

-n corda Verdadeiro se o comprimento de corda é diferente de zero; caso contrário, falso.

-p pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um FIFO. Falso se
pathname não pode ser resolvido, ou se pathname resolve para um diretório existente
entrada para um arquivo que não é um FIFO.

−r pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo para o qual
será concedida permissão para ler o arquivo, conforme definido em Seção 1.1.1.4,
Envie o Ler, Escreva, e Criação. Falso se pathname não pode ser resolvido, ou se
pathname resolve para uma entrada de diretório existente para um arquivo para o qual a permissão
para ler o arquivo não será concedido.

-S pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um soquete. Falso se
pathname não pode ser resolvido, ou se pathname resolve para um diretório existente
entrada para um arquivo que não é um soquete.

-S pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo que possui um
tamanho maior que zero. Falso se pathname não pode ser resolvido, ou se pathname
resolve para uma entrada de diretório existente para um arquivo que não tem tamanho
maior que zero.

-t descritor_arquivo
Verdadeiro se o número do descritor de arquivo descritor_arquivo é aberto e está associado a um
terminal. Falso se descritor_arquivo não é um número de descritor de arquivo válido ou se
número do descritor de arquivo descritor_arquivo não está aberto, ou se está aberto, mas não está
associado a um terminal.

−você pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo que tem seu
conjunto de sinalizadores set-user-ID. Falso se pathname não pode ser resolvido, ou se pathname
resolve para uma entrada de diretório existente para um arquivo que não tem sua configuração
conjunto de sinalizadores de ID do usuário.

−w pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo para o qual
será concedida permissão para gravar no arquivo, conforme definido em Seção 1.1.1.4,
Envie o Ler, Escreva, e Criação. Falso se pathname não pode ser resolvido, ou se
pathname resolve para uma entrada de diretório existente para um arquivo para o qual a permissão
gravar no arquivo não será concedido.

−x pathname
Verdadeiro se pathname resolve para uma entrada de diretório existente para um arquivo para o qual
permissão para executar o arquivo (ou pesquisá-lo, se for um diretório) será
concedido, conforme definido em Seção 1.1.1.4, Envie o Ler, Escreva, e Criação. Falso
if pathname não pode ser resolvido, ou se pathname resolve para um diretório existente
entrada para um arquivo para o qual a permissão para executar (ou pesquisar) o arquivo não será
ser concedido.

−z corda Verdadeiro se o comprimento da string corda é zero; caso contrário, falso.

corda Verdadeiro se a string corda não é a sequência nula; caso contrário, falso.

s1 = s2 Verdadeiro se as cordas s1 e s2 são idênticos; caso contrário, falso.

s1 != s2 Verdadeiro se as cordas s1 e s2 não são idênticos; caso contrário, falso.

n1 −eq n2 Verdadeiro se os inteiros n1 e n2 são algebricamente iguais; caso contrário, falso.

n1 Um n2 Verdadeiro se os inteiros n1 e n2 não são algebricamente iguais; caso contrário, falso.

n1 −gt n2 Verdadeiro se o inteiro n1 é algebricamente maior que o inteiro n2; por outro lado,
falsa

n1 −ge n2 Verdadeiro se o inteiro n1 é algebricamente maior ou igual ao número inteiro n2;
caso contrário, falso.

n1 −lt n2 Verdadeiro se o inteiro n1 é algebricamente menor que o inteiro n2; por outro lado,
falsa

n1 −le n2 Verdadeiro se o inteiro n1 é algebricamente menor ou igual ao número inteiro n2;
caso contrário, falso.

expressão1 −a expressão2
Verdadeiro se ambos expressão1 e expressão2 são verdadeiros; caso contrário, falso. O −a
primário binário é associativo à esquerda. Tem uma precedência maior do que −o.

expressão1 −o expressão2
Verdadeiro se qualquer um expressão1 or expressão2 é verdade; caso contrário, falso. O −o
primário binário é associativo à esquerda.

Com exceção do −h pathname e −L pathname primárias, se pathname argumento é
um link simbólico, teste deve avaliar a expressão resolvendo o link simbólico e
usando o arquivo referenciado pelo link.

Essas primárias podem ser combinadas com os seguintes operadores:

! expressão
Verdadeiro se expressão é falso. Falso se expressão é verdade.

( expressão )
Verdadeiro se expressão é verdade. Falso se expressão é falso. Os parênteses podem ser
usado para alterar a precedência normal e a associatividade.

As primárias com dois elementos do formulário:

-operador_primário operando_primário

são conhecidos como unário primárias. As primárias com três elementos em qualquer um dos dois
formulários:

operando_primário -operador_primário operando_primário

operador_primário operador_primário operador_principal

são conhecidos como binário primárias. Operadores adicionais definidos pela implementação e
operador_primários podem ser fornecidos por implementações. Eles devem ter a forma -operador
onde o primeiro personagem de operador não é um dígito.

O algoritmo para determinar a precedência dos operadores e o valor de retorno que
será gerado é baseado no número de argumentos apresentados ao teste. (No entanto, quando
usando o “[...]” forme o A argumentação final não será contada
este algoritmo.)

Na lista a seguir, $1, $2, $3 e $4 representam os argumentos apresentados a teste:

0 argumentos:
Sair falso (1).

1 argumento: Sair verdadeiro (0) se $1 não for nulo; caso contrário, saia falso.

2 argumentos:
*Se $1 for '!', saia verdadeiro se $2 for nulo, falso se $2 não for nulo.

* Se $1 for um primário unário, saia verdadeiro se o teste unário for verdadeiro, falso se
o teste unário é falso.

* Caso contrário, produzirá resultados não especificados.

3 argumentos:
* Se $2 for um primário binário, execute o teste binário de $1 e $3.

*Se $1 for '!', negue o teste de dois argumentos de $2 e $3.

*Se $1 for '(' e $ 3 é ')', execute o teste unário de $2. Em sistemas que
não suportam a opção XSI, os resultados não serão especificados se $1 for '('
e $ 3 é ')'.

* Caso contrário, produzirá resultados não especificados.

4 argumentos:
*Se $1 for '!', negue o teste de três argumentos de $2, $3 e $4.

*Se $1 for '(' e $ 4 é ')', execute o teste de dois argumentos de $2 e $3.
Em sistemas que não suportam a opção XSI, os resultados não são especificados
se $ 1 for '(' e $ 4 é ')'.

* Caso contrário, os resultados não serão especificados.

>4 argumentos:
Os resultados não são especificados.

Em sistemas compatíveis com XSI, as combinações de primários e operadores devem ser
avaliado usando as regras de precedência e associatividade descritas anteriormente.
Além disso, as primárias binárias de comparação de strings '=' e "! =" deve ter um
precedência mais alta do que qualquer primário unário.

STDIN


Não usado.

INPUT ARQUIVOS


Nenhum.

MEIO AMBIENTE VARIÁVEIS


As seguintes variáveis ​​de ambiente devem afetar a execução de teste:

GRANDE Forneça um valor padrão para as variáveis ​​de internacionalização que não estão definidas ou
nulo. (Veja o volume de Definições de Base de POSIX.1‐2008, Seção 8.2,
Internacionalização Variáveis pela precedência de internacionalização
variáveis ​​usadas para determinar os valores das categorias de local.)

LC_ALL Se definido como um valor de string não vazio, substitui os valores de todos os outros
variáveis ​​de internacionalização.

LC_CTYPE Determine o local para a interpretação de sequências de bytes de dados de texto
como caracteres (por exemplo, caracteres de byte único em oposição a caracteres de bytes múltiplos em
argumentos).

LC_MESSAGES
Determine a localidade que deve ser usada para afetar o formato e o conteúdo do
mensagens de diagnóstico gravadas no erro padrão.

NLSPAT Determine a localização dos catálogos de mensagens para o processamento de LC_MESSAGES.

ASSÍNCRONO EVENTOS


Padrão.

STDOUT


Não usado.

STDERR


O erro padrão deve ser usado apenas para mensagens de diagnóstico.

SAÍDA ARQUIVOS


Nenhum.

ESTENDIDO DESCRIÇÃO


Nenhum.

SAIR STATUS


Os seguintes valores de saída devem ser retornados:

0 expressão avaliado como verdadeiro.

1 expressão avaliado como falso ou expressão estava faltando.

> 1 Ocorreu um erro.

CONSEQUÊNCIAS OF ERROS


Padrão.

O seguinte seções e guarante que os mesmos estão informativo.

APLICAÇÃO USO


As extensões XSI especificando o −a e −o primárias binárias e o '(' e ')' operadores
foram marcados como obsoletos. (Muitas expressões que os utilizam são definidas ambiguamente pelo
gramática dependendo das expressões específicas que estão sendo avaliadas.) Scripts que usam estes
as expressões devem ser convertidas para as formas fornecidas abaixo. Embora muitas implementações
continuará a apoiar esses formulários obsoletos, os scripts devem ser extremamente cuidadosos ao
lidar com informações fornecidas pelo usuário que podem ser confundidas com estas e outras informações primárias e
operadores. A menos que o desenvolvedor da aplicação conheça todos os casos que produzem entrada para o
script, invocações como:

teste "$ 1" −a "$ 2"

deve ser escrito como:

teste "$ 1" && teste "$ 2"

para evitar problemas se um usuário fornecer valores como $1 definido como '!' e $2 definido como nulo
corda. Ou seja, nos casos em que a portabilidade máxima é preocupante, substitua:

teste expr1 −a expr2

com:

teste expr1 && teste expr2

e substitua:

teste expr1 −o expr2

com:

teste expr1 || teste expr2

mas observe que, em teste, −a tem precedência maior do que −o enquanto "&&" e "||" tem igual
precedência no shell.

Parênteses ou colchetes podem ser usados ​​na linguagem de comando shell para efetuar o agrupamento.

Os parênteses devem ser escapados ao usar sh; por exemplo:

teste \( expr1 −a expr2 \) −o expr3

Este comando nem sempre é portátil, mesmo em sistemas compatíveis com XSI, dependendo do
expressões especificadas por expr1, expr2, e expr3. Em vez disso, pode ser utilizado o seguinte formulário:

( teste expr1 && teste expr2 ) || teste expr3

Os dois comandos:

teste "$ 1"
teste ! "$ 1"

não pôde ser usado de forma confiável em alguns sistemas históricos. Resultados inesperados ocorreriam se
tal corda expressão foi usada e $1 expandido para '!', '(', ou um primário unário conhecido.
Melhores construções são:

teste -n "$ 1"
teste −z "$ 1"

respectivamente.

Os sistemas históricos também não têm sido confiáveis, dada a construção comum:

teste "$resposta" = "esperado fragmento"

Um dos seguintes é um formulário mais confiável:

teste "X$resposta" = "Xesperado fragmento"
teste "esperado fragmento" = "$resposta"

Observe que a segunda forma assume que esperado corda não poderia ser confundido com nenhum
primário unário. Se esperado corda começa com '-', '(', '!', ou mesmo '=', a primeira forma
deve ser usado em seu lugar. Usando as regras anteriores sem as extensões marcadas com XSI, qualquer
dos três formulários de comparação é confiável, considerando qualquer entrada. (No entanto, note que o
strings são citadas em todos os casos.)

Como as primárias binárias de comparação de strings, '=' e "! =", têm uma precedência mais alta
do que qualquer primário unário no caso com mais de 4 argumentos, resultados inesperados podem ocorrer
se os argumentos não estiverem devidamente preparados. Por exemplo, em:

teste -d $1 −o -d $2

Se $1 for avaliado como um possível nome de diretório de '=', os três primeiros argumentos são
considerada uma comparação de strings, o que causará um erro de sintaxe quando o segundo -d is
encontrado. Uma das seguintes formas evita isso; o segundo é preferido:

teste \( -d "$ 1" \) −o \( -d "$ 2" \)
teste -d "$ 1" || teste -d "$ 2"

Também no caso de mais de 4 argumentos:

teste "$ 1" = "bastão" −a "$ 2" = "Ball"

erros de sintaxe ocorrem se $1 for avaliado como '(' or '!'. Uma das seguintes formas impede
esse; o terceiro é preferido:

teste "X $ 1" = "Xbat" −a "X $ 2" = "X-bola"
teste "$ 1" = "bastão" && teste "$ 2" = "Ball"
teste "X $ 1" = "Xbat" && teste "X $ 2" = "X-bola"

EXEMPLOS


1. Saia se não houver dois ou três argumentos (duas variações):

if [ $# Um 2 ] && [ $# Um 3 ]; então saída 1; fi
if [ $# −lt 2 ] || [ $# −gt 3 ]; então saída 1; fi

2. Execute um mkdir se um diretório não existir:

teste ! -d tempdir && mkdir tempdir

3. Aguarde até que um arquivo fique ilegível:

enquanto teste −r o arquivo
do
dormir 30
feito
eco '"o arquivo" is não mais legível'

4. Execute um comando se o argumento for uma das três strings (duas variações):

if [ "$ 1" = "pera" ] || [ "$ 1" = "uva" ] || [ "$ 1" = "maçã" ]
então
comando
fi

caso "$ 1" em
pêra | uva | maçã) comando ;;
esac

JUSTIFICATIVA


O comando condicional derivado de KornShell (colchete duplo [[]]) foi removido do shell
descrição da linguagem de comando em uma proposta inicial. Foram levantadas objecções de que a verdadeira
problema é o uso indevido do teste comando ([), e colocá-lo no shell é o caminho errado
para consertar o problema. Em vez disso, documentação adequada e uma nova palavra reservada do shell (!) estamos
suficiente.

Testes que requerem múltiplos teste operações podem ser feitas no nível do shell usando
invocações individuais do teste comandos e lógicas de shell, em vez de usar o
sujeito a erros −o bandeira de teste.

Os sistemas compatíveis com XSI suportam mais de quatro argumentos.

Os sistemas compatíveis com XSI suportam a combinação de primários com as seguintes construções:

expressão1 −a expressão2
Verdadeiro se ambos expressão1 e expressão2 são verdadeiras.

expressão1 −o expressão2
Verdadeiro se pelo menos um dos expressão1 e expressão2 são verdadeiras.

( expressão )
Verdadeiro se expressão é verdade.

Ao avaliar essas expressões combinadas mais complexas, as seguintes regras de precedência são
usava:

* As primárias unárias têm precedência mais alta que as primárias binárias algébricas.

* As primárias unárias têm precedência menor que as primárias binárias de string.

* As primárias unárias e binárias têm maior precedência que as unárias corda primário.

* O ! operador tem maior precedência do que o −a operador, e o −a operador tem
maior precedência do que o −o operador.

* O −a e −o os operadores são associativos à esquerda.

* Os parênteses podem ser usados ​​para alterar a precedência normal e a associatividade.

As versões BSD e System V do −f não são os mesmos. A definição do BSD foi:

−f lima Verdadeiro se lima existe e não é um diretório.

A versão SVID (verdadeira se o arquivo existir e for um arquivo normal) foi escolhida para este
volume do POSIX.1‐2008 porque seu uso é consistente com o -b, -c, -d e -p operandos
(lima existe e é um tipo de arquivo específico).

O -E primário, possuindo funcionalidade semelhante àquela fornecida pelo shell C, foi
adicionado porque fornece a única maneira para um script de shell descobrir se um arquivo existe
sem tentar abrir o arquivo. Como as implementações podem adicionar arquivos adicionais
tipos, um script portátil não pode usar:

teste -b Foo −o -c Foo −o -d Foo −o −f Foo −o -p Foo

para descobrir se Foo é um arquivo existente. Em sistemas BSD históricos, a existência de um arquivo
poderia ser determinado por:

teste −f Foo −o -d Foo

mas não havia uma maneira fácil de determinar se um arquivo existente era normal. Um cedo
proposta usou o KornShell −a primário (com o mesmo significado), mas foi alterado para -E
porque havia preocupações sobre a alta probabilidade de os humanos confundirem o −a primário
com o −a operador binário.

As seguintes opções não foram incluídas neste volume do POSIX.1‐2008, embora sejam
fornecido por algumas implementações. Esses operandos não devem ser utilizados por novas implementações
para outros fins:

-K lima Verdadeiro se lima existe e seu sticky bit está definido.

−C lima Verdadeiro se lima é um arquivo contíguo.

−V lima Verdadeiro se lima é um arquivo de versão.

A opção a seguir não foi incluída porque não estava documentada na maioria das implementações,
foi removido de algumas implementações (incluindo System V), e a funcionalidade é
fornecido pelo shell (veja Seção 2.6.2, Parâmetro Expansão.

−eu corda O comprimento da corda corda.

O -b, -c, -g, -p, −você e −x os operandos são derivados do SVID; BSD histórico não
fornecê-los. O -K o operando é derivado do System V; o BSD histórico não fornece isso.

Em sistemas BSD históricos, teste −w anuário sempre retornou falso porque teste tentei
abra o diretório para gravação, o que sempre falha.

Algumas primárias adicionais recentemente inventadas ou do KornShell apareceram nos primeiros
proposta como parte do comando condicional ([[]]): s1 > s2, s1 < s2, str = de cinto de segurança, str
!= de cinto de segurança, f1 −nt f2, f1 −ot f2 e f1 −ef f2. Eles não foram transferidos para o
teste utilitário quando o comando condicional foi removido do shell porque eles não
sido incluído no teste utilidade incorporada em implementações históricas do sh utilidade.

O -t descritor_arquivo primário é mostrado com um argumento obrigatório porque a gramática é
ambíguo se puder ser omitido. Implementações históricas permitiram que ele fosse omitido,
fornecendo um padrão de 1.

Percebe-se que '[' não faz parte do conjunto de caracteres de nome de arquivo portátil; no entanto, uma vez que
deve ser codificado por um único byte e faz parte do conjunto de caracteres portáteis, o
O nome deste utilitário forma uma sequência de caracteres em todas as localidades suportadas.

FUTURO INSTRUÇÕES


Nenhum.

Use testposix online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad




×
Anúncios
❤ ️Compre, reserve ou compre aqui — sem custos, ajuda a manter os serviços gratuitos.