88 lines
1.6 KiB
Plaintext
88 lines
1.6 KiB
Plaintext
1.
|
|
La commande seq 5 permet de faire afficher une sequenciel jusqu'a 5.
|
|
|
|
La commande seq 7 permet de faire afficher une sequenciel jusqu'a 7.
|
|
|
|
a)
|
|
for ((i=1;i<=5;i++));do echo $i;done
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
|
|
La ligne de commande permet de la même chose que seq 5.
|
|
for ((i=1;i<=7;i++));do echo $i;done
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
La ligne de commande permet la même chose que seq 7.
|
|
|
|
b)
|
|
Dans un fichier je place les lignes de commandes:
|
|
|
|
for ((i=1; i<=$1; i++));
|
|
do echo $i
|
|
done
|
|
|
|
puis j'écrit chmod +x my_seq.sh dans le terminal puis ecrit ./my_seq.sh 45 et sa affiche la liste de 1 a 45
|
|
|
|
2)
|
|
On place dans un fichier qui se nomme mult_mat.sh
|
|
|
|
#!/bin/bash
|
|
|
|
if [[ $# -lt 2 ]]
|
|
then
|
|
echo "Usage : $0 <NUM_ARG1> <NUM_ARG2>"
|
|
exit
|
|
fi
|
|
for((i=$1;i<=$2;i++))
|
|
do
|
|
for ((j=$1;j<=$2;j++))
|
|
do
|
|
echo -n "$((i*j)) "
|
|
done
|
|
echo -e "\n"
|
|
done
|
|
exit
|
|
|
|
3)
|
|
a)
|
|
On place dans un fichier qui se prénome bin2dot-with-for.sh les lignes de commandes suivantes:
|
|
|
|
if [[ $# -lt 2 ]]
|
|
then echo "usage: $0 <SRC_FILE> <DEST_FILE>"
|
|
exit
|
|
fi
|
|
|
|
for addr in $(cat $1)
|
|
do
|
|
x=$(expr substr $addr 1 8)
|
|
y=$(expr substr $addr 9 8)
|
|
z=$(expr substr $addr 17 8)
|
|
t=$(expr substr $addr 25 8)
|
|
addr_dot=$((2#$x)).$((2#$y)).$((2#$z)).$((2#$t))
|
|
echo $addr_dot
|
|
done>$2
|
|
|
|
exit
|
|
|
|
b)
|
|
read x ; on saisit, disons 7 et on valide (<CR>). Tout de suite apr`es, on fait :
|
|
echo "$? x=$x". Elle affiche 0 x=7
|
|
|
|
|
|
On recommence avec read x, en tapant directement <CR>, sans rien saisir. Alors :
|
|
echo "$? x=$x" ; affiche --> 0 x=
|
|
|
|
On recommence avec read x, sans rien saisir et sans taper <CR> mais en tapant CTRL-D
|
|
(rappel : signifie fin du fichier entrée standard). Alors :
|
|
echo "$? x=$x" ; affiche --> 1 x=
|
|
|
|
|