Il s'agit de la commande commandposix 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
commande — exécute une commande simple
SYNOPSIS
commander [−p] nom_commande [argument ]
commander [−p][−v|−V] nom_commande
DESCRIPTION
Notre commander L'utilitaire doit amener le shell à traiter les arguments comme une simple commande,
suppression de la recherche de fonction shell décrite dans Blog 2.9.1.1, Command Rechercher
ainsi que Internationaux, article 1b.
Si la nom_commande est le même que le nom de l'un des utilitaires spéciaux intégrés, le
propriétés spéciales dans la liste énumérée au début de Blog 2.14, Spécial Construit
In Utilitaires ne se produira pas. A tous autres égards, si nom_commande n'est pas le nom d'un
fonction, l'effet de commander (sans option) équivaut à omettre commander.
When the -v or −V l'option est utilisée, le commander le service public doit fournir des informations concernant
comment un nom de commande est interprété par le shell.
OPTIONS
Notre commander l'utilitaire doit être conforme au volume Base Definitions de POSIX.1‐2008, Blog
12.2, Services Publics Syntaxe Recommandations.
Les options suivantes doivent être prises en charge :
−p Exécutez la recherche de commande en utilisant une valeur par défaut pour PATH qui est garanti à
trouver tous les utilitaires standard.
-v Écrivez une chaîne sur la sortie standard qui indique le chemin d'accès ou la commande qui
sera utilisé par le shell, dans l'environnement d'exécution courant du shell (voir
Blog 2.12, coquille Internationaux Environnement), invoquer nom_commande, mais ne pas
invoquer nom_commande.
* Utilitaires, utilitaires intégrés réguliers, nom_commandes comprenant un
et toutes les fonctions définies par l'implémentation trouvées à l'aide du
PATH variable (comme décrit dans Blog 2.9.1.1, Command Rechercher ainsi que
Internationaux), doivent être écrits sous forme de chemins d'accès absolus.
* Fonctions Shell, utilitaires intégrés spéciaux, utilitaires intégrés réguliers non
associé à un PATH recherche, et les mots réservés au shell doivent être écrits comme
juste leurs noms.
* Un alias doit être écrit sous forme de ligne de commande qui représente son alias
définition.
* Sinon, aucune sortie ne doit être écrite et l'état de sortie doit refléter que
le nom n'a pas été trouvé.
−V Écrivez une chaîne sur la sortie standard qui indique comment le nom donné dans le
nom_commande l'opérande sera interprété par le shell, dans le shell courant
environnement d'exécution (voir Blog 2.12, coquille Internationaux Environnement), mais faites
ne pas invoquer nom_commande. Bien que le format de cette chaîne ne soit pas spécifié, il
indiquera dans laquelle des catégories suivantes nom_commande tombe et doit
inclure les informations indiquées :
* Utilitaires, utilitaires intégrés réguliers et toute implémentation définie
fonctions trouvées à l'aide de PATH variable (comme décrit dans Blog
2.9.1.1, Command Rechercher ainsi que Internationaux), doit être identifié comme tel et
inclure le chemin d'accès absolu dans la chaîne.
* Les autres fonctions du shell doivent être identifiées comme des fonctions.
* Les alias doivent être identifiés comme des alias et leurs définitions incluses dans le
chaîne.
* Les utilitaires intégrés spéciaux doivent être identifiés comme intégrés spéciaux
utilitaires.
* Utilitaires intégrés réguliers non associés à un PATH la recherche doit être
identifiés comme des utilitaires intégrés réguliers. (Le terme « régulier » n'a pas besoin d'être
utilisé.)
* Les mots réservés Shell doivent être identifiés comme des mots réservés.
OPÉRANDES
Les opérandes suivants doivent être pris en charge :
argument L'une des chaînes traitées comme un argument de nom_commande.
nom_commande
Le nom d'un utilitaire ou d'un utilitaire intégré spécial.
STDIN
Non utilisé.
CONTRIBUTION DES DOSSIERS
Aucun.
ENVIRONNEMENT VARIABLES
Les variables d'environnement suivantes doivent affecter l'exécution de commander:
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 sur erreur standard et messages informatifs écrits
à la sortie standard.
NLSPATH Déterminer l'emplacement des catalogues de messages pour le traitement des LC_MESSAGES.
PATH Déterminer le chemin de recherche utilisé lors de la recherche de commande décrite dans Blog
2.9.1.1, Command Rechercher ainsi que Internationaux, à l'exception de ce qui est décrit dans le −p option.
ASYNCHRONE ÉVÈNEMENTS
Par défaut.
SORTIE STD
When the -v option est spécifiée, la sortie standard doit être formatée comme suit :
"%s\n", <chemin d'accès or commander>
When the −V option est spécifiée, la sortie standard doit être formatée comme suit :
"%s\n", <non spécifié>
STDERR
L'erreur standard ne doit être utilisée que pour les messages de diagnostic.
SORTIE DES DOSSIERS
Aucun.
ÉLARGI DESCRIPTION
Aucun.
EXIT STATUT
When the -v or −V sont spécifiées, les valeurs de sortie suivantes doivent être renvoyées :
0 Achèvement réussi.
>0 Le nom_commande n'a pas pu être trouvé ou une erreur s'est produite.
Sinon, les valeurs de sortie suivantes doivent être renvoyées :
126 L'utilitaire spécifié par nom_commande a été trouvé mais n'a pas pu être invoqué.
127 Une erreur s'est produite dans le commander utilitaire ou l'utilitaire spécifié par nom_commande
Ne peut être trouvé.
Sinon, le statut de sortie de commander sera celui de la commande simple spécifiée par le
arguments à commander.
CONSÉQUENCES OF LES ERREURS
Par défaut.
Notre Abonnement les sections are informatif.
INSCRIPTION UTILISATION
L'ordre de recherche des commandes permet aux fonctions de remplacer les éléments intégrés et le chemin habituels
recherches. Cet utilitaire est nécessaire pour autoriser les fonctions qui ont le même nom qu'un
utilitaire pour appeler l'utilitaire (au lieu d'un appel récursif à la fonction).
Le chemin par défaut du système est disponible en utilisant getconf; cependant, depuis getconf peut avoir besoin de
avoir la PATH configuré avant de pouvoir s'appeler lui-même, les éléments suivants peuvent être utilisés :
commander −p getconf PATH
Il y a certains avantages à supprimer les caractéristiques spéciales des éléments intégrés spéciaux
à l'occasion. Par exemple:
commander exec > fichier-inscriptible
ne provoque pas l'abandon d'un script non interactif, de sorte que l'état de la sortie peut être vérifié
par le scénario.
Notre commander, env, nohup, fois et xarg les utilitaires ont été spécifiés pour utiliser le code de sortie
127 si une erreur se produit afin que les applications puissent distinguer ``échec de recherche d'un utilitaire''
de ``l'utilitaire invoqué s'est terminé avec une indication d'erreur''. La valeur 127 a été choisie car
il n'est pas couramment utilisé pour d'autres significations ; la plupart des utilitaires utilisent de petites valeurs pour ``normal
conditions d'erreur'' et les valeurs supérieures à 128 peuvent être confondues avec la résiliation en raison de
réception d'un signal. La valeur 126 a été choisie de manière similaire pour indiquer que le
l'utilitaire a pu être trouvé, mais pas invoqué. Certains scripts produisent des messages d'erreur significatifs
différenciant les cas 126 et 127. La distinction entre les codes de sortie 126 et 127 est
basé sur la pratique KornShell qui utilise 127 lorsque toutes les tentatives de exec l'utilitaire échoue avec
[ÉNONCÉ], et utilise 126 lorsque toute tentative de exec l'utilitaire échoue pour toute autre raison.
Depuis l' -v ainsi que −V options de commander produire une sortie par rapport au shell actuel
environnement d'exécution, commander est généralement fourni en tant que shell standard intégré. Si c'est
appelé dans un sous-shell ou un environnement d'exécution d'utilitaire séparé, tel que l'un des
Suivante à la suite:
(CHEMIN=foo commander -v)
nohup commander -v
il ne produit pas nécessairement des résultats corrects. Par exemple, lorsqu'il est appelé avec nohup ou d’une
exec fonction, dans un environnement d'exécution d'utilitaire séparé, la plupart des implémentations ne sont pas
capable d'identifier des alias, des fonctions ou des fonctions intégrées spéciales.
Deux types de composants intégrés réguliers peuvent être rencontrés sur un système et ceux-ci sont décrits
séparément par commander. La description de la recherche de commande dans Blog 2.9.1.1, Command
Rechercher ainsi que Internationaux permet à un utilitaire standard d'être implémenté en tant qu'outil intégré régulier
tant qu'il se trouve à l'endroit approprié dans un PATH chercher. Ainsi, par exemple, commander
-v oui pourrait céder /bin/vrai ou un chemin d'accès similaire. Autre implémentation définie
les utilitaires qui ne sont pas définis par ce volume de POSIX.1‐2008 peuvent n'exister que
ins et n'ont pas de chemin d'accès associé. Ceux-ci produisent une sortie identifiée comme
intégrés (réguliers). Les applications qui les rencontrent ne peuvent pas compter sur execfaire respecter
eux, en les utilisant avec nohup, en les remplaçant par un autre PATH, Et ainsi de suite.
EXEMPLES
1. Créez une version de cd qui imprime toujours le nouveau répertoire de travail exactement une fois :
CD() {
commander cd "$@" > / dev / null
pwd
}
2. Démarrez un « script shell sécurisé » dans lequel le script évite d'être falsifié par son
parent:
IFS='
'
# Notre précédant Plus-value devrait be .
# Ensemble IFS à ces défaut valeur.
\unalias −a
# Désactivez tous les alias possibles.
# Notez que unalias est échappé pour empêcher un alias
# utilisé pour l'unalias.
commande unset −f
# Assurez-vous que la commande n'est pas une fonction utilisateur.
CHEMIN="$(commande −p getconf CHEMIN):$CHEMIN"
# Mettez un préfixe PATH fiable.
#...
À ce stade, étant donné les autorisations correctes sur les répertoires appelés par PATH, le script
a la capacité de s'assurer que tout utilitaire qu'il appelle est celui prévu. c'est être
très prudent car il suppose que des extensions d'implémentation peuvent être présentes qui
permettrait aux fonctions utilisateur d'exister lorsqu'elles sont invoquées ; cette capacité n'est pas
spécifié par ce volume de POSIX.1‐2008, mais il n'est pas interdit en tant qu'extension.
Par exemple, la ENV La variable précède l'invocation du script avec un utilisateur start-
jusqu'à script. Un tel script pourrait définir des fonctions pour usurper l'application.
RAISONNEMENT
Depuis que commander est un utilitaire intégré régulier, il se trouve toujours avant le PATH chercher.
Il n'y a rien dans la description de commander cela implique que la ligne de commande est analysée
différemment de celui de toute autre commande simple. Par exemple:
commander a | b ; c
n'est pas analysé d'une manière spéciale qui provoque '|' or ';' à traiter autrement qu'un tuyau
opérateur ou ou qui empêche la recherche de fonction sur b or c.
Notre commander l'utilitaire est quelque peu similaire au shell de la huitième édition builtin commande, mais
depuis commander va également au système de fichiers pour rechercher des utilitaires, le nom builtin pourra
ne pas être intuitif.
Notre commander l'utilitaire est le plus susceptible d'être fourni en tant qu'élément intégré régulier. il n'est pas répertorié
en tant qu'élément intégré spécial pour les raisons suivantes :
* La suppression des fonctions exportables a fait la priorité spéciale d'un intégré spécial
inutile.
* Un élément intégré spécial a des propriétés spéciales (voir Blog 2.14, Spécial Encastré
Utilitaires) qui étaient inappropriés pour invoquer d'autres utilitaires. Par exemple, deux
des commandes telles que :
données > fichier-inscriptible
date de commande > fichier-inscriptible
aurait des résultats entièrement différents ; dans un script non interactif, le premier
continuer à exécuter la commande suivante, cette dernière abandonnerait. Présentation de ce
la différence sémantique ainsi que les fonctions de suppression étaient considérées comme non intuitives.
Notre −p est présente car elle est utile pour pouvoir assurer une recherche de chemin sûre qui
trouve tous les utilitaires standard. Cette recherche peut ne pas être identique à celle qui
se produit par l'un des exec fonctions (telles que définies dans le volume Interfaces système de
POSIX.1‐2008) lorsque PATH est non réglé. À tout le moins, cette fonctionnalité est requise pour permettre au
script pour accéder à la bonne version de getconf pour que la valeur du chemin par défaut puisse
être récupéré avec précision.
Notre commander -v ainsi que −V des options ont été ajoutées pour répondre aux exigences des utilisateurs qui sont
actuellement accompli par trois services publics historiques différents : type dans le système V
coquille, D'où dans le KornShell, et qui dans la coquille C. Puisqu'il n'y a pas d'historique
accord sur comment et quoi accomplir ici, le POSIX commander l'utilité a été améliorée et
les utilitaires historiques n'ont pas été modifiés. La coque C qui conduit simplement un chemin
chercher. Le KornShell D'où est plus élaborée—en plus des catégories requises par
POSIX, il signale également les alias suivis, les alias exportés et les fonctions non définies.
Le format de sortie de −V a été laissé pour la plupart non spécifié parce que les utilisateurs humains sont ses seuls
public. Les candidatures ne doivent pas être écrites pour se soucier de ces informations ; ils peuvent utiliser
la sortie de -v différencier les différents types de commandes, mais les
informations qui peuvent être émises par les plus prolixes −V n'est pas nécessaire et ne devrait pas être
arbitrairement contraint dans sa verbosité ou sa localisation pour des raisons d'analyse d'application.
FUTUR DIRECTIONS
Aucun.
Utilisez commandposix en ligne à l'aide des services onworks.net