Script bash de base
Lorsque je fais
for i in 1 2 3 ;
do
echo $i;
done
Dans ce cas, ça m'affiche 1 2 3. Comment faire pour afficher un intervalle de 1 à 10 par exemple ?
Ne pas me répondre
for i in 1 2 3 4 5 6 7 8 9 10 ; do echo $i ; done
sinon je demande l'intervalle [1-1000] ;-)
Commentaires
man seq
A ben pour 1000 un truc comme ca :
for i in 0 1 2 3 4 5 6 7 8 9;
for j in 0 1 2 3 4 5 6 7 8 9
for k in 0 1 2 3 4 5 6 7 8 9
echo $i * 100 + $j * 10 + $k ;
done:
done;
done;
enfin quelque chose dans le style
;-)
enfin, je doit dire que je suis tout de même interresser par la réponse ^_^
$seq 1000
c'est juste un peu plus court :-)
for (( i=1 ; i <= 1000; i++ )); do echo $i; done
Sinon "man bash" c'est pas mal non plus...
le man bash est une horreur
par contre http://www.tldp.org/LDP/abs/html/(...) c'est du bonheur
Autre méthode :
Raccourci sommaire :
Cette syntaxe héritée du C est l'un des gros apports de bash par rapport au ksh, lui même étendu du sh avec les fonctions et le typage (faible) de variable...
Une question cependant, le "bash" est-il full-POSIX comme le ksh ?
heu pas très utile le for là :-)
dans le même genre tu as
cat file | grep xxxx
Oui enfin à la base, c'était la question. Après, je pense que le but était de remplacer echo $i par qqchose de plus compliqué.
Sinon, au lieu d'utiliser ``, il est préférable d'utiliser $(). Cela marche récursivement, contrairement aux ``. La solution devient :
for i in $(seq 1000); do
echo $i
done
Merci à tous pour les réponses.
Pour le man bash ... merci j'avais fait mais j'ai pas trouvé. Et pour le man seq, c'est ce que je cherche ... mais comment penser à seq (ok qd on le sait c'est plus facile) ?
Ciao.
Dans ce cas précis je pense pas que tu l'aurais trouvé mais sinon apropos(1) est ton ami (et sous Debian apt-cache search).