Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Arguments de sript entier
Envoyé par: uraeus

Bonjour,

j'ai besoin d'un script dans ce genre pour m'éviter des répéter un grand nombre de fois la même commande.

#!/bin/sh
i=$2
while [ $i -le $3 ]
do
  rm $1$i
  ln -s pere $1$i
  i=$(($i+1)
done

quand j'utilise mon script je lance une commande du genre

./script radicaldulien 1 20

Mon soucis c'est que apparement l'argument $2 et $3 ne sont pas reconnu comme entier.

Il y a-t-il un moyen pour convertir un caractere en entier?? Où peut-on s'y prendre autrement??

Merci d'avance de vos lumières;-)

Poste le Wednesday 16 January 2008 14:53:36
Répondre     Citer    
Re: Arguments de sript entier
Envoyé par: PlainStupidPenguin

Salut,

Le Shell est à ma connaissance un langage dynamiquement et faiblement typé. Donc, à moins de donner autre chose que des chiffres, pas de problème de typage lors de l'évaluation arithmétique.

Par contre, il manque une parenthèse à ton i=$(($i+1), ça peut y faire (au passage, est-ce que tu ne gagnerais pas à écrire i=1 en dur au lieu de passer par un argument ? )...

Poste le Wednesday 16 January 2008 18:00:41
Répondre     Citer    
Re: Arguments de script entier
Envoyé par: twocats

i=$(($i+1)
C'est quoi ça ???
i=$(($i + 1))
est sans doute mieux.

-------------------
La réponse est 42

Poste le Wednesday 16 January 2008 18:12:09
Répondre     Citer    
Re: Arguments de sript entier
Envoyé par: Fanch

si ton sh est un lien vers bash, alors il est possible d'écrire directement des expressions arithmétiques entre doubles parenthèses :
$ i=0
$ (( i += 1 ))
$ echo $i
1

------- <br />
La meilleure façon de prédire le futur, c'est de l'inventer ~ Alan Kay

Poste le Wednesday 16 January 2008 18:40:51
Répondre     Citer    
Re: Arguments de sript entier
Envoyé par: uraeus

X-o vi effectivement le copier coller à un poil louper.

En fait les arguments entiers passent bien, c'est moi qui est un peu catouillé en lisant des choses à droite et à gauche. En particulier, j'ai recopié simplement la première ligne donnée dans le tuto du site sur la programmation de script avec sh, mais en remplacant par bash ça marche tout de suite...

#!/bin/bash
i=$2
while [ $i -le $3 ]
do
  rm $1$i
  ln -s pere $1$i
  i=$[$i+1]
done

Merci à tous

Poste le Thursday 17 January 2008 08:36:09
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Arguments de sript entier
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons