est-il possible d'avoir plusieurs opérateurs unaires en si des déclarations .. Voici le code de code qui me donne une erreur.
Veuillez corriger le code ici. P>
if [ -f $input_file ] -a [ -f $output_file ] -a [ -f $log_file ] ] then ### Some Code here fi
4 Réponses :
if [ -f "file1" -a -f "file2" -a "file3" ]; then #some code fi
Cela fonctionne comme une magie .. Merci pour la réponse rapide ..
[ code> est une commande, ne faisant pas partie de la déclaration
si code>. En tant que tel, vous devriez le transmettre chacun des arguments appropriés au lieu d'essayer de l'exécuter de manière incorrecte comme vous l'avez.
if [ arg1 arg2 arg3 arg4 ... ]
then
Dans les environnements Cygwin, il y a un C: \ Cygwin \ bin \ [. Exe. Un sentiment vraiment étrange de jeter un coup d'œil à ce dossier pour la première fois.
Commande similaire [ code> dans
/ usr / bin code> sur la plupart des distributions Linux, malgré laquelle
[ code> est généralement un bâtiment intégré.
Vous pouvez voir le Donc, dans votre cas, vous pouvez écrire le ghostdog74 em> manière ou: p> [...] code> uniquement comme raccourci pour
Test ... code>. Les options sont utilisées de la même manière.
Il est important de placer des variables à l'intérieur des citations doubles à l'intérieur [...] code> pour empêcher les intérieurs de la fractionnement de mots ainsi que la possibilité de variables évaluant à rien. Cependant, les guillemets doubles sont facultatifs à l'intérieur du
[[...]] de bash-spécifique code>.
Si vous utilisez la double crochet de Bash, vous pouvez le faire:
if [[ -f "$input_file" && -f "$output_file" && -f "$log_file" ]]
Il n'est pas nécessaire de citer des variables contenant des noms de fichiers si vous utilisez un double support car Bash ne fait pas de coller avec deux crochets. Voir myWiki.woolgedge.org/bashfaq/031