URL: https://linuxfr.org/forums/programmation-shell/posts/une-erreur-sur-while-grep-uid-etcpasswd Title: une erreur sur while [ `grep $uid /etc/passwd` ] Authors: Cédric Hammer Date: 2007年06月12日T15:39:47+02:00 Tags: Score: 0 Hello tout le monde, Je fais un script shell dont voici un bout qui vaut valeur de test, car ma boucle plante : #!/bin/sh uid=50001 while [ `grep $uid /etc/passwd` ] do £spaces£ £/spaces£uid=`expr $uid + 1` done echo $uid Mon but est donc simplement de déterminer si l'uid 50001 existe dans le /etc/passwd, et d'incrémenter cette valeur si la réponse est oui. le seul problème c'est que ça plante si l'enregistrement qui contient cette valeur a un champ commentaire avec des espaces. Exemple de l'erreur: ./test.sh: line 5: [: SKTW8471:x:50001:50001:test: unary operator expected 50001 La ligne en question vaut normalement: # grep 50001 /etc/passwd SKTW8471:x:50001:50001:test comment:/common/OS:/bin/bash je n'arrive pas trop à voir comment régler le problème alors si quelqu'un avait une idée ... merci !

AltStyle によって変換されたページ (->オリジナル) /