nom_de_fonction() { corps }
Citation
blazers
Ce script m'à l'air intéressant, en effet, j'ai
pas mal de fichiers vides.
Citation
Le soucis c'est qu'on vient de commencer le shell et qu'on a meme pas abordé des notions telles que le sous-shell, pour tout dire je suis en premiere année de licence maths-infos et nous avons a vrais dire pas vraiment fait de cours sur le shell
for fichier in $(tree -f -i --noreport); do if [ -s $fichier ]; then true else false fi done
Citation
PlainStupidPenguin
je
trouve ça un peu idiot de vous faire bosser sur du
shell en vous interdisant l'usage des commandes
adéquates alors que c'est précisément ce qui fait
l'efficacité d'un script
Oui d'accord, mais pour ça, autant prendre de vrais exemples, des cas où tu as vraiment besoin d'agir récursivement, de faire des boucles, etc. Bref, faire qu'on sente qu'on n'a pas inventé tout ça pour faire joli mais parce que c'était plus simple et naturel de faire comme ça.Citation
oudoubah
Ca peut permettre d'aborder d'autres notions : récursivité, boucles, tests,...
100% d'accord, mais si tu te bases sur des commandes qui se trainent le c*l par terre, mécaniquement ton script se trainera le c*l par terre, ce même si ta syntaxe est par ailleurs un jardin à la française.Citation
Pour être efficace en shell, il faut maitriser les différents outils
Oui, lorsqu'on ne l'a pas à disposition. Mais note que ça suppose une bonne connaissance de la boîte à outils... c'est bien pour ça que commencer par cet aspect me paraît mettre la charrue avant les boeufs. C'est comme si on commençait par apprendre à un plombier à démonter un syphon en bidouillant une pince coupante.Citation
C'est parfois utile de savoir recréer un outil lorsqu'on ne l'a pas à disposition. Par exemple, j'ai eu besoin pour un script d'utiliser la commande sed dans un environnement restreint, où sed n'existait pas. On doit prendre alors les quelques commandes disponibles pour faire ce dont on a besoin.
Je ten prie, avant d'explorer le man moi je ne savais pas qu'on pouvait la plier de la sorte. :-)Citation
Merci pour la commande tree, je ne la connaissais pas
z=. test -d f1 vrai => cd . ; bim bim x=. test -s . = faux => echo . = fichier x=.. test -s .. = faux => echo .. = fichier x=f1 test -s f1 = faux => echo f1 = fichier vide ; echo rm -v f1 x=rep1 test -s rep1 = faux => echo rep1 = fichier [fin bim
gbl(){ for x in $(ls -A) do if test -d $x then echo $x : rep else if test -s $x then echo $x : file else echo $x : vide rm -f $x fi fi done } beta(){ for z in $(ls -A) do if test -d $z then cd $x; gbl else gbl fi done } beta
beta(){ for z in $(ls) do if test -d $z then cd $z; gbl else gbl fi done beta } gbl(){ for x in $(ls -A) do if test -d $x then echo $x : rep else if test -s $x then echo $x : file else echo $x : vide rm -f $x fi fi done } beta
.: rep1/ rep2/ rep3/ sc.sh ./rep1: f1 ./rep2: f ./rep3: f3 rep31/ ./rep3/rep31: f4
REP=/tmp/fics/rep1 f1 : vide rm -f f1 REP=/tmp/fics/rep1 f1 : vide rm -f f1 REP=/tmp/fics/rep1 f1 : vide rm -f f1 REP=/tmp/fics/rep1 f1 : vide rm -f f1