GoGPT Best VPN GoSearch

Icône de favori OnWorks

testposix - En ligne dans le Cloud

Exécutez testposix dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande testposix qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


tester — évaluer l'expression

SYNOPSIS


tester [expression]

[ [expression] ]

DESCRIPTION


Le manuel de formation tester l'utilitaire doit évaluer la expression et indiquer le résultat de l'évaluation
par son statut de sortie. Un état de sortie de zéro indique que l'expression évaluée comme vraie
et un état de sortie de 1 indique que l'expression a été évaluée comme fausse.

Dans la deuxième forme de l'utilitaire, qui utilise "[]" plutôt que tester, la demande doit
assurez-vous que les crochets sont des arguments séparés.

OPTIONS


Le manuel de formation tester l'utilitaire ne reconnaîtra pas le "−−" argument de la manière spécifiée par
Ligne directrice 10 dans le volume Définitions de base de POSIX.1‐2008, Blog 12.2, Services Publics Syntaxe
Conseils et recommandations.

Aucune option ne sera prise en charge.

OPÉRANDES


L'application doit garantir que tous les opérateurs et éléments des primaires sont présentés comme
arguments séparés à la tester utilitaire.

Les primaires suivantes peuvent être utilisées pour construire expression:

-b chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un bloc spécial
déposer. Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout à un
entrée de répertoire existante pour un fichier qui n'est pas un fichier spécial de bloc.

-c chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un caractère spécial
déposer. Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout à un
entrée de répertoire existante pour un fichier qui n'est pas un fichier spécial de caractères.

-d chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un répertoire. Faux
if chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout dans un répertoire existant
entrée pour un fichier qui n'est pas un répertoire.

-e chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante. Faux si chemin d'accès
ne peuvent être résolus.

−f chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier normal.
Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout à un existant
entrée de répertoire pour un fichier qui n'est pas un fichier normal.

-g chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier qui a son
jeu d'indicateurs set-group-ID. Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès
se résout en une entrée de répertoire existante pour un fichier qui n'a pas son set-
jeu d'indicateurs d'ID de groupe.

-h chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un lien symbolique.
Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout à un existant
entrée de répertoire pour un fichier qui n'est pas un lien symbolique. Si le composant final
of chemin d'accès est un lien symbolique, ce lien symbolique n'est pas suivi.

−L chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un lien symbolique.
Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout à un existant
entrée de répertoire pour un fichier qui n'est pas un lien symbolique. Si le composant final
of chemin d'accès est un lien symbolique, ce lien symbolique n'est pas suivi.

−n un magnifique Vrai si la longueur de un magnifique est différent de zéro ; sinon, faux.

−p chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour une FIFO. Faux si
chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout dans un répertoire existant
entrée pour un fichier qui n'est pas une FIFO.

-r chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier pour lequel
l'autorisation de lire à partir du fichier sera accordée, comme défini dans Blog 1.1.1.4,
Fichier Lire, Écrire, et Création. Faux si chemin d'accès ne peut pas être résolu, ou si
chemin d'accès se résout en une entrée de répertoire existante pour un fichier pour lequel l'autorisation
à lire à partir du fichier ne sera pas accordé.

−S chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un socket. Faux si
chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout dans un répertoire existant
entrée pour un fichier qui n'est pas un socket.

-s chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier qui a un
taille supérieure à zéro. Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès
se résout en une entrée de répertoire existante pour un fichier qui n'a pas de taille
supérieur à zéro.

-t descripteur_de_fichier
Vrai si numéro de descripteur de fichier descripteur_de_fichier est ouvert et est associé à un
Terminal. Faux si descripteur_de_fichier n'est pas un numéro de descripteur de fichier valide, ou si
numéro de descripteur de fichier descripteur_de_fichier n'est pas ouvert, ou s'il est ouvert mais n'est pas
associé à un terminal.

-u chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier qui a son
jeu d'indicateurs set-user-ID. Faux si chemin d'accès ne peut pas être résolu, ou si chemin d'accès
se résout en une entrée de répertoire existante pour un fichier qui n'a pas son set-
jeu d'indicateurs d'ID utilisateur.

-w chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier pour lequel
l'autorisation d'écrire dans le fichier sera accordée, comme défini dans Blog 1.1.1.4,
Fichier Lire, Écrire, et Création. Faux si chemin d'accès ne peut pas être résolu, ou si
chemin d'accès se résout en une entrée de répertoire existante pour un fichier pour lequel l'autorisation
d'écrire dans le fichier ne sera pas accordé.

-x chemin d'accès
Vrai si chemin d'accès se résout en une entrée de répertoire existante pour un fichier pour lequel
l'autorisation d'exécuter le fichier (ou de le rechercher, s'il s'agit d'un répertoire) sera
accordé, tel que défini dans Blog 1.1.1.4, Fichier Lire, Écrire, et Création. Faux
if chemin d'accès ne peut pas être résolu, ou si chemin d'accès se résout dans un répertoire existant
entrée pour un fichier pour lequel l'autorisation d'exécuter (ou de rechercher) le fichier ne sera pas
être accordé.

-z un magnifique Vrai si la longueur de la chaîne un magnifique est zéro; sinon, faux.

un magnifique Vrai si la chaîne un magnifique n'est pas la chaîne nulle ; sinon, faux.

s1 = s2 Vrai si les chaînes s1 et s2 sont identiques; sinon, faux.

s1 != s2 Vrai si les chaînes s1 et s2 ne sont pas identiques ; sinon, faux.

n1 −éq n2 Vrai si les entiers n1 et n2 sont algébriquement égaux ; sinon, faux.

n1 −ne n2 Vrai si les entiers n1 et n2 ne sont pas algébriquement égaux ; sinon, faux.

n1 -gt n2 Vrai si l'entier n1 est algébriquement plus grand que l'entier n2; autrement,
faux

n1 −ge n2 Vrai si l'entier n1 est algébriquement supérieur ou égal à l'entier n2;
sinon, faux.

n1 -lt n2 Vrai si l'entier n1 est algébriquement inférieur à l'entier n2; autrement,
faux

n1 −le n2 Vrai si l'entier n1 est algébriquement inférieur ou égal à l'entier n2;
sinon, faux.

expression1 -a expression2
Vrai si les deux expression1 et expression2 sont vrai; sinon, faux. Les -a
binaire primaire est associatif à gauche. Il a une priorité plus élevée que -o.

expression1 -o expression2
Vrai si soit expression1 or expression2 est vrai; sinon, faux. Les -o
binaire primaire est associatif à gauche.

À l'exception de la -h chemin d'accès et −L chemin d'accès primaires, si un chemin d'accès l'argument est
un lien symbolique, tester évalue l'expression en résolvant le lien symbolique et
en utilisant le fichier référencé par le lien.

Ces primaires peuvent être combinés avec les opérateurs suivants :

! expression
Vrai si expression c'est faux. Faux si expression est vrai.

( expression )
Vrai si expression est vrai. Faux si expression c'est faux. Les parenthèses peuvent être
utilisé pour modifier la priorité et l'associativité normales.

Les primaires avec deux éléments du formulaire :

-opérateur_primaire opérande_primaire

sont connus comme unaire primaires. Les primaires avec trois éléments dans l'un des deux
formes:

opérande_primaire -opérateur_primaire opérande_primaire

opérande_primaire opérande_primaire opérande_primaire

sont connus comme binaire primaires. Opérateurs supplémentaires définis par l'implémentation et
opérateur_primaires peuvent être fournis par les implémentations. Ils doivent être de la forme -opérateur
où le premier caractère de opérateur n'est pas un chiffre.

L'algorithme pour déterminer la priorité des opérateurs et la valeur de retour qui
doit être généré est basé sur le nombre d'arguments présentés à tester. (Cependant, quand
en utilisant l' "[...]" former le l'argument final ne compte pas dans
cet algorithme.)

Dans la liste suivante, $1, $2, $3 et $4 représentent les arguments présentés à tester:

0 argument :
Sortie faux (1).

1 argument : Quitter vrai (0) si $1 n'est pas nul ; sinon, sortie false.

2 argument :
* Si $1 est '!', exit true si $2 est nul, false si $2 n'est pas nul.

* Si $1 est un primaire unaire, quitter vrai si le test unaire est vrai, faux si
le test unaire est faux.

* Sinon, produire des résultats non spécifiés.

3 argument :
* Si $2 est un primaire binaire, effectuez le test binaire de $1 et $3.

* Si $1 est '!', annulez le test à deux arguments de $2 et $3.

* Si $1 est '(' et 3 $ est ')', effectuez le test unaire de $2. Sur les systèmes qui
ne prennent pas en charge l'option XSI, les résultats ne sont pas spécifiés si $1 est '('
et 3 $ est ')'.

* Sinon, produire des résultats non spécifiés.

4 argument :
* Si $1 est '!', annulez le test à trois arguments de 2 $, 3 $ et 4 $.

* Si $1 est '(' et 4 $ est ')', effectuez le test à deux arguments de $2 et $3.
Sur les systèmes qui ne prennent pas en charge l'option XSI, les résultats ne sont pas spécifiés
si $1 est '(' et 4 $ est ')'.

* Sinon, les résultats ne sont pas précisés.

>4 arguments :
Les résultats ne sont pas précisés.

Sur les systèmes conformes XSI, les combinaisons de primaires et d'opérateurs doivent être
évalué à l'aide des règles de priorité et d'associativité décrites précédemment.
De plus, les primaires binaires de comparaison de chaînes '=' et "!=" aura un
priorité plus élevée que n'importe quel primaire unaire.

STDIN


Non utilisé.

CONTRIBUTION DES DOSSIERS


Aucun.

ENVIRONNEMENT VARIABLES


Les variables d'environnement suivantes doivent affecter l'exécution de tester:

LANGUE Fournissez une valeur par défaut pour les variables d'internationalisation qui ne sont pas définies ou
nul. (Voir le volume Définitions de base de POSIX.1‐2008, Blog 8.2,
Internationalisation Variables pour la priorité de l'internationalisation
variables utilisées pour déterminer les valeurs des catégories de paramètres régionaux.)

LC_TOUS S'il est défini sur une valeur de chaîne non vide, remplace les valeurs de tous les autres
variables d'internationalisation.

LC_CTYPE Déterminer la localisation pour l'interprétation des séquences d'octets de données de texte
sous forme de caractères (par exemple, des caractères à un octet par opposition aux caractères à plusieurs octets dans
arguments).

LC_MESSAGES
Déterminez les paramètres régionaux qui doivent être utilisés pour affecter le format et le contenu de
messages de diagnostic écrits dans l'erreur standard.

NLSPATH Déterminer l'emplacement des catalogues de messages pour le traitement des LC_MESSAGES.

ASYNCHRONE ÉVÈNEMENTS


Par défaut.

SORTIE STD


Non utilisé.

STDERR


L'erreur standard ne doit être utilisée que pour les messages de diagnostic.

SORTIE DES DOSSIERS


Aucun.

ÉLARGI DESCRIPTION


Aucun.

EXIT STATUT


Les valeurs de sortie suivantes doivent être renvoyées :

0 expression évalué à vrai.

1 expression évalué à faux ou expression manquait.

>1 Une erreur s'est produite.

CONSÉQUENCES OF LES ERREURS


Par défaut.

Le manuel de formation Abonnement les sections sommes-nous informatif.

INSCRIPTION UTILISATION


Les extensions XSI spécifiant le -a et -o primaires binaires et les '(' et ')' opérateurs
ont été marqués obsolètes. (De nombreuses expressions qui les utilisent sont définies de manière ambiguë par le
grammaire en fonction des expressions spécifiques évaluées.) Scripts utilisant ces
les expressions doivent être converties dans les formes indiquées ci-dessous. Même si de nombreuses implémentations
continuera à prendre en charge ces formes obsolètes, les scripts doivent être extrêmement prudents lorsqu'ils
traiter les entrées fournies par l'utilisateur qui pourraient être confondues avec celles-ci et d'autres primaires et
les opérateurs. À moins que le développeur de l'application ne connaisse tous les cas qui produisent une entrée dans le
script, des appels tels que :

tester «$ 1» -a «$ 2»

doit s'écrire comme :

tester «$ 1» && tester «$ 2»

pour éviter les problèmes si un utilisateur a fourni des valeurs telles que $1 définies sur '!' et $2 mis à zéro
chaîne de caractères. Autrement dit, dans les cas où la portabilité maximale est préoccupante, remplacez :

tester expression1 -a expression2

avec:

tester expression1 && tester expression2

et remplacer:

tester expression1 -o expression2

avec:

tester expression1 || tester expression2

mais notez que, dans tester, -a a une priorité plus élevée que -o tout en "&&" et "||" avoir l'égalité
priorité dans la coquille.

Des parenthèses ou des accolades peuvent être utilisées dans le langage de commande shell pour effectuer le regroupement.

Les parenthèses doivent être échappées lors de l'utilisation sh; par exemple:

tester \( expression1 -a expression2 \) -o expression3

Cette commande n'est pas toujours portable, même sur les systèmes conformes à XSI selon le
expressions spécifiées par expr1, expr2, et expr3. Le formulaire suivant peut être utilisé à la place :

( tester expression1 && tester expression2 ) || tester expression3

Les deux commandes :

tester «$ 1»
tester ! «$ 1»

n'a pas pu être utilisé de manière fiable sur certains systèmes historiques. Des résultats inattendus se produiraient si
tel un magnifique expression ont été utilisées et $1 étendu à '!', '(', ou un primaire unaire connu.
Les meilleures constructions sont :

tester −n «$ 1»
tester -z «$ 1»

respectivement.

Les systèmes historiques ont également été peu fiables étant donné la construction commune :

tester "$réponse" = "attendu chaîne de caractères"

L'un des formulaires suivants est plus fiable :

tester "X$réponse" = "Xattendu chaîne de caractères"
tester "attendu chaîne de caractères" = "$réponse"

Notez que la deuxième forme suppose que attendu un magnifique ne peut être confondu avec aucun
primaire unaire. Si attendu un magnifique commence avec '−', '(', '!', ou même '=', la première forme
devrait être utilisé à la place. En utilisant les règles précédentes sans les extensions marquées XSI, tout
des trois formulaires de comparaison est fiable, quelle que soit l'entrée. (Cependant, notez que le
les chaînes sont entre guillemets dans tous les cas.)

Étant donné que les primaires binaires de comparaison de chaînes, '=' et "!=", ont une priorité plus élevée
que n'importe quel primaire unaire dans le cas supérieur à 4 arguments, des résultats inattendus peuvent se produire
si les arguments ne sont pas correctement préparés. Par exemple, dans :

tester -d $1 -o -d $2

Si $1 est évalué à un nom de répertoire possible de '=', les trois premiers arguments sont
considéré comme une comparaison de chaînes, ce qui provoquera une erreur de syntaxe lorsque la seconde -d is
rencontré. L'une des formes suivantes empêche cela ; le second est préféré :

tester \( -d «$ 1» \) -o \( -d «$ 2» \)
tester -d «$ 1» || tester -d «$ 2»

Également dans le cas supérieur à 4 arguments :

tester «$ 1» = "chauve souris" -a «$ 2» = "Ball"

des erreurs de syntaxe se produisent si $1 est évalué à '(' or '!'. L'une des formes suivantes empêche
cette; le troisième est préféré :

tester "X$1" = "Xbat" -a "X$2" = "Xball"
tester «$ 1» = "chauve souris" && tester «$ 2» = "Ball"
tester "X$1" = "Xbat" && tester "X$2" = "Xball"

EXEMPLES


1. Quitter s'il n'y a pas deux ou trois arguments (deux variantes) :

if [ $# −ne 2 ] && [ $# −ne 3 ]; puis sortie 1; fi
if [ $# -lt 2 ] || [ $# -gt 3 ]; puis sortie 1; fi

2. Effectuez une mkdir si un répertoire n'existe pas :

tester ! -d répertoire temporaire && mkdir répertoire temporaire

3. Attendez qu'un fichier devienne illisible :

tout en tester -r le fichier
do
sleep 30
fait
echo '"le fichier" is aucune plus long lisible'

4. Exécutez une commande si l'argument est l'une des trois chaînes (deux variantes) :

if [ «$ 1» = "poire" ] || [ «$ 1» = "raisin" ] || [ «$ 1» = "Pomme" ]
puis
commander
fi

cas "$ 1" dans
poire|raisin|pomme) commander ;;
Esac

RAISONNEMENT


La commande conditionnelle dérivée de KornShell (double crochet [[]]) a été retiré de la coquille
description du langage de commande dans une première proposition. Des objections ont été soulevées selon lesquelles le véritable
le problème est l'utilisation abusive du tester commande ([), et le mettre dans le shell est la mauvaise façon
pour régler le problème. Au lieu de cela, une documentation appropriée et un nouveau mot réservé au shell (!) sont
suffisant.

Des tests qui nécessitent plusieurs tester les opérations peuvent être effectuées au niveau du shell en utilisant
invocations individuelles de la tester commande et la logique du shell, plutôt que d'utiliser le
sujet aux erreurs -o drapeau de tester.

Les systèmes conformes XSI prennent en charge plus de quatre arguments.

Les systèmes conformes à XSI prennent en charge la combinaison de primaires avec les constructions suivantes :

expression1 -a expression2
Vrai si les deux expression1 et expression2 sont vrai.

expression1 -o expression2
Vrai si au moins un des expression1 et expression2 sont vrai.

( expression )
Vrai si expression est vrai.

Lors de l'évaluation de ces expressions combinées plus complexes, les règles de priorité suivantes sont
utilisé:

* Les primaires unaires ont une priorité plus élevée que les primaires binaires algébriques.

* Les primaires unaires ont une priorité inférieure à celle des primaires binaires de chaîne.

* Les primaires unaires et binaires ont une priorité plus élevée que les unaires un magnifique primaire.

* Le ! l'opérateur a une priorité plus élevée que l'opérateur -a l'opérateur, et le -a l'opérateur a
priorité plus élevée que la -o opérateur.

* Le -a et -o les opérateurs sont laissés associatifs.

* Les parenthèses peuvent être utilisées pour modifier la priorité et l'associativité normales.

Les versions BSD et System V de −f ne sont pas les mêmes. La définition BSD était :

−f filet Vrai si filet existe et n'est pas un répertoire.

La version SVID (vrai si le fichier existe et est un fichier normal) a été choisie pour cela
volume de POSIX.1‐2008 car son utilisation est conforme aux -b, -c, -det −p opérandes
(filet existe et est un type de fichier spécifique).

Le manuel de formation -e primaire, possédant des fonctionnalités similaires à celles fournies par le shell C, a été
ajouté car il fournit le seul moyen pour un script shell de savoir si un fichier existe
sans essayer d'ouvrir le fichier. Étant donné que les implémentations sont autorisées à ajouter un fichier supplémentaire
types, un script portable ne peut pas utiliser :

tester -b foo -o -c foo -o -d foo -o −f foo -o −p foo

pour savoir si foo est un fichier existant. Sur les systèmes BSD historiques, l'existence d'un fichier
pourrait être déterminé par :

tester −f foo -o -d foo

mais il n'y avait pas de moyen simple de déterminer qu'un fichier existant était un fichier normal. Un début
proposition a utilisé le KornShell -a primaire (avec le même sens), mais cela a été changé en -e
parce qu'il y avait des inquiétudes au sujet de la forte probabilité que les humains confondent le -a primaire
grâce à la fonction -a opérateur binaire.

Les options suivantes n'ont pas été incluses dans ce volume de POSIX.1‐2008, bien qu'elles soient
fourni par certaines implémentations. Ces opérandes ne doivent pas être utilisés par les nouvelles implémentations
à d'autres fins :

-k filet Vrai si filet existe et son bit collant est défini.

-C filet Vrai si filet est un fichier contigu.

−V filet Vrai si filet est un fichier de version.

L'option suivante n'a pas été incluse car elle n'était pas documentée dans la plupart des implémentations,
a été supprimé de certaines implémentations (y compris System V), et la fonctionnalité est
fourni par la coque (voir Blog 2.6.2, Paramètre Expansion.

−l un magnifique La longueur de la chaîne un magnifique.

Le manuel de formation -b, -c, -g, −p, -uet -x les opérandes sont dérivés du SVID ; BSD historique ne
leur fournir. Les -k l'opérande est dérivé du Système V ; BSD historique ne le fournit pas.

Sur les systèmes BSD historiques, tester -w annuaire toujours renvoyé faux car tester essayé de
ouvrir le répertoire pour l'écriture, ce qui échoue toujours.

Certaines primaires supplémentaires nouvellement inventées ou issues du KornShell sont apparues au début
proposition dans le cadre de la commande conditionnelle ([[]]): s1 > s2, s1 < s2, str = modèle, str
!= modèle, f1 -nt f2, f1 -ot f2et f1 −ef f2. Ils n'ont pas été reportés dans le
tester utilitaire lorsque la commande conditionnelle a été supprimée du shell car ils n'ont pas
été inclus dans le tester utilitaire intégré dans les implémentations historiques de la sh utilitaire.

Le manuel de formation -t descripteur_de_fichier primaire est affiché avec un argument obligatoire car la grammaire est
ambigu s'il peut être omis. Les implémentations historiques ont permis de l'omettre,
fournissant une valeur par défaut de 1.

Il est noté que '[' ne fait pas partie du jeu de caractères du nom de fichier portable ; cependant, puisqu'il
doit être codé par un seul octet et fait partie du jeu de caractères portable, le
Le nom de cet utilitaire forme une chaîne de caractères dans tous les paramètres régionaux pris en charge.

FUTUR DIRECTIONS


Aucun.

Utilisez testposix en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.