que signifie -x si instruction conditionnelle?


Réponses:


26

Depuis les man bashpages (en particulier la section EXPRESSIONS CONDITIONNELLES):

   -a file
          True if file exists.
   -b file
          True if file exists and is a block special file.
   -c file
          True if file exists and is a character special file.
   -d file
          True if file exists and is a directory.
   -e file
          True if file exists.
   -f file
          True if file exists and is a regular file.
   -g file
          True if file exists and is set-group-id.
   -h file
          True if file exists and is a symbolic link.
   -k file
          True if file exists and its ``sticky'' bit is set.
   -p file
          True if file exists and is a named pipe (FIFO).
   -r file
          True if file exists and is readable.
   -s file
          True if file exists and has a size greater than zero.
   -t fd  True if file descriptor fd is open and refers to a terminal.
   -u file
          True if file exists and its set-user-id bit is set.
   -w file
          True if file exists and is writable.
   -x file
          True if file exists and is executable.

   [...]

3
Il convient de noter que l'exécutable d'un répertoire signifie qu'il peut être parcouru.
remer riche

2
@StevenPenny La deuxième partie de la question était "Comment puis-je trouver cette page de manuel si?"
Sparhawk

1
@drewbenn Lorsque vous appelez testdans bash, vous n'invoquez pas le testbinaire. Vous testinvoquez plutôt la fonction intégrée de bash , qui contient de la documentation help test, entre autres. man testpeut être trompeur dans certains cas pour cette raison.
Chris Down

11

iflui-même est un mot-clé shell, vous pouvez donc trouver des informations à ce sujet avec help if. iflui-même ne se branche que si la commande suivante retourne vrai (0) ou faux (pas zéro). Ce que vous voulez vraiment, c'est man [ou man test, où [est un alias test. Cette instruction est en cours d'exécution test -x /etc/rc.local, qui teste pour voir si ce fichier existe et est exécutable (ou dispose d'une autorisation de recherche).


1
man [fonctionne aussi.
Sparhawk

1
Non seulement il teste pour voir s'il existe, il teste également si le fichier est exécutable.
Tom Fenech

@TomFenech, ahh, à droite ...
psusi

@psusi ifn'est pas un shell intégré à son mot clé shell. Exécutez cette commande type ifpour vérifier cela.
Avinash Raj

3

De info test:

`-x FILE'
    True if FILE exists and execute permission is granted (or search permission, if it is a directory).

Une autorisation d'exécution est nécessaire sur un répertoire pour pouvoir y entrer (c'est-à-dire faire de certains répertoires votre répertoire de travail actuel).

Exécuter est nécessaire sur un répertoire pour accéder aux informations "inode" des fichiers qu'il contient. Vous en avez besoin pour rechercher un répertoire dans lequel lire les inodes des fichiers. Pour cette raison, l'autorisation d'exécution sur un répertoire est souvent appelée autorisation de recherche.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.