2010-09-29 7 views
0

j'ai écrit un programme de sh qui, lorsque vous tapez dans l'argument qui est un nom de fichier d'une image du programme serait un aperçu et cela peut prendre plusieurs arguments (comme indiqué ci-dessous)Essayer de limiter l'aperçu

#!/bin/sh 

for i in $*; do if [ ! -f "$i" ]; then  
echo "invalid file $i"  
else  
display -size 40x50 $i &  
fi  
done 

Comment serais-je en mesure de limiter le nombre d'arguments à 5?

Aidez s'il vous plaît! Merci

+0

Non directement lié à votre question: remplace '$ *' par '" $ @ "' et '$ i' par' "$ i" '. Sinon, votre script échouera avec des noms de fichiers contenant des espaces ou '\\ [? *'. – Gilles

Répondre

1

Vous pouvez vérifier $# qui est un compte de nombre d'arguments de ligne de commande pour le script et veiller à ce qu'il ne dépasse pas 5.

Vous pouvez le faire comme:

if [ $# -gt 5 ]; then 
     echo '>5 arguments given..exiting' 
     exit 1                 
fi 

# your existing script here. 
+0

alors comment est-ce que je l'écrirais comme? – GuzzyD

0
if [ $# -gt 5 ]; then 
    echo 'No more than 5 arguments are allowed' 
    exit 1 
fi