0% ont trouvé ce document utile (0 vote)
24 vues24 pages

09 Les Scripts

Transféré par

Heisenbug
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues24 pages

09 Les Scripts

Transféré par

Heisenbug
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les scripts

Linux
Linux 11 CPI
CPI 2018/2019
2018/2019

-1-
Les scripts

-2-
Les scripts
Un script est un ensemble de commandes dans un
fichier

Une ligne dans un script peut :


● être vide
● se composer de commentaires en utilisant #
● se composer d’une seul commande
● se composer de plusieurs commandes
séparées ; ou | ou && ou ||

-3-
Les scripts
Exemple 01 (structure d'un script)
# ! pour spécifier shell utilisé

#!/bin/bash
# La ligne suivante est vide

# La ligne suivante contient une seul commande


sleep 1& # La ligne en question
# La ligne suivante utilise ;
logname ; hostname ; pwd
# La ligne suivante utilise |
ps | grep bash
# La ligne suivante utilise &&
echo "PID:" && echo "bg: $!, shell: $$"

-4-
Les scripts

-5-
Les scripts

● Pour rendre un script exécutable


Syntaxe: chmod +x nom_script

● Pour l’exécuter
Syntaxe: ./nom_script

● Pour éviter ./
Syntaxe: PATH+=:.
Ou : PATH=$PATH:.

-6-
Les scripts
Exemple 01
user1@PC:~$ cat exemple_script
#!/bin/bash
# La ligne suivante est vide

# La ligne suivante contient une seul commande


sleep 1& # La ligne en question
# La ligne suivante utilise ;
logname ; hostname ; pwd
# La ligne suivante utilise |
ps | grep bash
# La ligne suivante utilise &&
echo "PID:" && echo "bg: $!, shell: $$"

-7-
Les scripts
Exemple 01 (exécution)
user1@PC:~$ ./exemple_script
bash: ./exemple_script: Permission non accordée
user1@PC:~$ chmod +x exemple_script
user1@PC:~$ ./exemple_script
user1
PC
/home/user1
2706 pts/0 [Link] bash
PID:
bg: 3127, shell: 3126

-8-
Les scripts
Exemple 02 (echo -e )
-e : interpréte les caractères comme \n qui
signifie retour à la ligne
user1@PC:~$ cat exemple2_echo
#!/bin/bash
# sans -e
echo "pid du bash actif est: $$ \nl'état de la
dernière commade est: $? "

# avec -e
echo -e "pid du bash actif est: $$ \nl'état de
la dernière commade est: $? "

-9-
Les scripts
Exemple 02 (exécution)
user1@PC:~$ ./exemple2_echo
pid du bash actif est: 10947 \nl'état de la
dernière commade est: 0
pid du bash actif est: 10947
l'état de la dernière commade est: 0

- 10 -
Les scripts

- 11 -
Les scripts

- 12 -
Les scripts

Les paramètres du script sont placés après le nom


du script et séparés par des espaces
Syntaxe: ./nom_script [paramètres]

Les paramètres sont récupérées à travers des


variables spéciales
● $0 nom du script
● $1,$2,$3...$9 les 9 premiers paramètres
● $# nombre de paramètres
● $* et $@ contiennent tous les paramètres
- 13 -
Les scripts
Exemple (passage de paramètres)
user1@PC:~$ cat exemple_param
#!/bin/bash
echo "Nom du script est : $0"
echo "Nombre de parametres : $#"
echo "Parametres : 1=$1 2=$2 3=$3"
echo '$*:' "$*"
file $*
echo '$@:' "$@"
file $@

- 14 -
Les scripts
Exemple (exécution)
user1@PC:~$ ./exemple_param fich1 fich2 Bureau/
Nom du script est : ./exemple_param
Nombre de parametres : 3
Parametres : 1=fich1 2=fich2 3=Bureau/
$*: fich1 fich2 Bureau/
fich1: ASCII text
fich2: ASCII text
Bureau/: directory
$@: fich1 fich2 Bureau/
fich1: ASCII text
fich2: ASCII text
Bureau/: directory

- 15 -
Les scripts

- 16 -
Les scripts

La commande read permet de lire des données


depuis l'entrée standard
Syntaxe: read variable1 [variable2 ...]

Les données sont récupérées dans les variables


variable1 variable2 ...

- 17 -
Les scripts
Exemple 01 (read)

user1@PC:~$ cat exemple_read


#!/bin/bash
echo "Entrer le nom du processus:"
read processus
echo "le PID du processus est :" `pgrep $processus -u $USER`
echo "confirmation en utilisant PS"
ps -f -u $USER |grep $processus | grep -v 'grep'
echo 'confirmation en utilisant $$:' $$

- 18 -
Les scripts
Exemple 01 (exécution)
user1@PC:~$ ./exemple_read
Entrer le nom du processus
bash
le PID du processus est : 3895
confirmation en utilisant PS
user1 3895 3894 0 08:36 pts/0 [Link] bash
user1 5467 3895 0 09:57 pts/0 [Link] /bin/bash ./exemple_read
confirmation en utilisant $$: 5467

- 19 -
Les scripts
Exemple 02 (read -p)
-p : afficher un message de prompt
user1@PC:~$ cat exemple2_read
#!/bin/bash
read -p "Entrer le nom du processus: " processus
echo "le PID du processus est :" `pgrep $processus -u $USER`
echo "confirmation en utilisant PS"
ps -f -u $USER |grep $processus | grep -v 'grep'
echo 'confirmation en utilisant $$:' $$

- 20 -
Les scripts
Exemple 02 (exécution)
user1@PC:~$ ./exemple2_read
Entrer le nom du processus: bash
le PID du processus est : 3895
confirmation en utilisant PS
user1 3895 3894 0 08:36 pts/0 [Link] bash
user1 5467 3895 0 09:57 pts/0 [Link] /bin/bash ./exemple_read
confirmation en utilisant $$: 5467

- 21 -
Les scripts
Exemple 03 (read -s)
-s : ne pas afficher le texte saisi
user1@PC:~$ cat exemple3_read
#!/bin/bash
read -p "Entrer la nouvelle password: " -s password

# retour à la ligne
echo -e "\n"

#format est "old_passwd\nnew_passwd\nnew_passwd


echo -e "esi\n$password\n$password" | passwd

- 22 -
Les scripts
Exemple 03 (exécution)
user1@PC:~$ ./exemple3_read
Entrer la nouvelle password:

Changement du mot de passe pour user1.


Mot de passe UNIX (actuel) : Entrez le nouveau
mot de passe UNIX : Retapez le nouveau mot de
passe UNIX : passwd : le mot de passe a été mis
à jour avec succès

- 23 -
Les scripts

Linux
Linux 11 CPI
CPI 2018/2019
2018/2019

- 24 -

Vous aimerez peut-être aussi