Comment faire un OU logique de fonctionnement dans les scripts shell

Je suis en train de faire une simple condition de vérifier, mais il ne semble pas fonctionner.

Si $# est égal à 0 ou est supérieure à 1 puis dire bonjour.

J'ai essayé la syntaxe suivante, sans succès:

if [ "$#" == 0 -o "$#" > 1 ] ; then
 echo "hello"
fi

if [ "$#" == 0 ] || [ "$#" > 1 ] ; then
 echo "hello"
fi
  • Ils travaillent tous les deux pour moi. Avez-vous préciser une coquille dans la ligne shebang?
  • J'ai effectivement oublié la ligne shebang, mais je l'ai testé avec il tout à l'heure et ça n'a pas fonctionné.
  • > est redirection de la sortie en sh/bash. Maintenant, vous avez probablement un fichier nommé 1.
  • Pour plus d'informations sur Bash comparaisons, veuillez voir mes réponses aux questions précédentes here et here. Pour plus d'informations concernant les supports, entre crochets doubles et doubles parenthèses, voir ma réponse here.
  • Il ne fonctionne pas parce que vous faites la compraison: utilisation de "$#" == "0" ou $# -eq 0
InformationsquelleAutor Strawberry | 2010-11-06