Rapport de TP d'UNIX, le 07/10/2014 Martin Prieur de la Comble Abel Derderian 13.8.1 On crée le script test1.sh, qui contient : test1.sh #!/bin/bash echo "Mon nom est $0" echo "Je suis appelé avec $# arguments" echo "qui sont $*" On l'invoque ensuite avec : Bienvenue dans le monde Unix Il précise qu'il s'appelle test1.sh et qu'il a 5 arguments (et les liste) On l'invoque avec : "Bienvenue dans le monde Unix" (guillements en plus) Même résultat, mais un seul argument, qui est la chaine de caractère. 13.8.2 On crée le script factoriel.sh, qui contient : Factorielle.sh #!/bin/bash rep=1 n=$1 while [ $n != 0 ]; do rep=$((rep * n)) n=$((n-1)) done echo La factorielle de $1 est $rep 13.8.3 On créé deux scripts : Vador.sh : #!/bin/bash echo "Je modifie mes variables" moi=$USER echo $moi export moi echo "Luke, au pied !" sh ./luke.sh echo $moi Luke.sh : #!/bin/bash echo $moi moi="Je suis Luke" echo $moi Résultat : 20130111@tuxws01:~/UNIX/TP3$ ./vador.sh Je modifie mes variables 20130111 Luke, au pied ! 20130111 Je suis Luke ! 20130111 Donc pas de modification. Luke ne s'est pas imposé face à Dark Vador. 13.8.4 On créé un script pour lister les fichiers du répertoire avec un numéro devant : Liste.sh #!/bin/bash n=1 for fichier in * ; do echo "$n) $fichier" n=$((n+1)) done 13.8.5 On créé un script qui affiche le contenu de sa ligne de commande, 5 fois, avec 1 seconde de latence perroquet.sh #!/bin/bash i=1 while [ $i -le 5 ]; do echo $@ sleep 1 i=$((i+1)) done Et pour l'appeller 3 fois en parrallèle : ./perroquet.sh Je&./perroquet.sh suis&./perroquet.sh beau 13.8.6 On créé un fichie recurls.sh dans le dossier ~/UNIX/TP3 (important) : #!/bin/bash rep=$1; cd $rep; for i in * do echo $i if [ -d $i ] then temp=$rep$i sh ~/UNIX/TP3/recurls.sh $i fi done 13.8.7 On créé un fichier rename.sh : #!/bin/bash for i in *$1; do fichier=`basename $i $1` mv $fichier$1 $fichier$2 done Celui-ci va chercher les noms finissant par le premier argument et va les renommer avec le deuxième argument.