Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.shell : Read sans interuption

Posté par dubis () le 08 avril 2008

Bonjour,



J'aimerai modifier un script pour que la variable INFILELOG soit prise dans la ligne de commande du lancement du script .

Actuellement, que je lance le script il me demande quel fichier je veux charger avec ce code :



echo "flexCount Running"

echo " "

printf "FlexLM log filename : "

read INFILELOG





J'aimerai lancer le script de façon suivante ;

#~: script.sh Fichier_à_charger.log



J'ai essayé les man de la commande read sans succès

Merci de votre aide

> Lire le message (8 commentaires, moyenne: 2,4).  

Vous avez demandé le commentaire #921040.

Paramètres en ligne de commande

Posté par Kerro () le 08/04/2008 à 18:33. (lien). Évalué à 4.

Si j'ai bien compris la question, tu souhaites passer le paramètre sur la ligne de commande plutôt que manuellement une fois le programme lancé.

script.sh parametre1 parametre2 parametre3

Ton script doit juste contenir $1 pour "lire" le premier paramètre, $2 pour le second, ect.

exemples:
echo $1
cp $2 /sauvegardes
scp utilisateur@serveur.domaine.com:$3 $4
MAVARIABLE=$5
if [ -r $6 ]; then .....

--
Qui a existé en premier: le compilateur ou son code source ?
  • [^]Re: Paramètres en ligne de commande

    Posté par totof2000 () le 08/04/2008 à 19:04. (lien). Évalué à 3.

    Attention, tu ne peux pas lire le 10e parametre avec $10.

    Si tu as plus de 9 parametres il faut faire un truc du genre

    for i in $*
    do
    traitement des parametres
    done

    ou alors : param1=$1; shift
    param2=$1;shift

    • [^]Re: Paramètres en ligne de commande

      Posté par B. franck () le 09/04/2008 à 08:43. (lien). Évalué à 3.

      Attention, tu ne peux pas lire le 10e parametre avec $10.

      d'où l'utilité des accolades...
      echo ${10}

      • [^]Re: Paramètres en ligne de commande

        Posté par totof2000 () le 09/04/2008 à 14:13. (lien). Évalué à 2.

        Et ça marche pour tous les shells ça ?

        De toute façon, j'ai l'habitude de ne pas rendre les parametres que je passe au shell dépendants de leur position ...

        • [^]Re: Paramètres en ligne de commande

          Posté par totof2000 () le 09/04/2008 à 14:16. (lien). Évalué à 2.

          je me réponds à moi-même, testé avec ksh et sh : ça marche ...

          [^]Re: Paramètres en ligne de commande

          Posté par B. franck () le 12/04/2008 à 18:38. (lien). Évalué à 1.

          Et ça marche pour tous les shells ça ?
          bah en *shell, le contenu d'une variable ça a toujours été:
          ${NOM_DE_LA_VARIABLE}

    [^]Re: Paramètres en ligne de commande

    Posté par dubis () le 08/04/2008 à 19:09. (lien). Évalué à 1.

    Cela devient plus clair ... .

    Merci beaucoup de votre aide