Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 15:36] Hypathie [C ) Création de variables] |
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 16:05] Hypathie [B) Comment créer et exécuter un script ?] |
||
---|---|---|---|
Ligne 269: | Ligne 269: | ||
</code> | </code> | ||
+ | <note tip> | ||
+ | À savoir : une suite de commandes s'écrit de façon équivalente pour le shell ainsi : | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | set -o posix | ||
+ | printf "Un nouveau script $USER ? Son nom : " | ||
+ | { read nom ;\ | ||
+ | echo "#!/bin/bash" >> $nom ;\ | ||
+ | chmod u+x $nom ;\ | ||
+ | mv ~/$nom ~/MesScripts ;\ | ||
+ | /usr/bin/gedit ~/MesScripts/$nom ;} | ||
+ | </code> | ||
+ | (espace avant le ; puis anti-slash accolé au point virgule ; retour à la ligne (espace ou non avant la nouvelle commande.) | ||
+ | |||
+ | **Merci à captnfab et LeDub pour cette information !** | ||
+ | </note> | ||
* **Pour le lancer :** | * **Pour le lancer :** | ||
Ligne 538: | Ligne 554: | ||
====1) opérateurs de sortie : ==== | ====1) opérateurs de sortie : ==== | ||
<code bash> | <code bash> | ||
- | > : crée un fichier ou le réactualise ; redirige le canal choisi vers un fichier et force sa création, si le fichier existe son contenu est recrée et numéro d'inode du fichier d'origine est conservé. | + | > : crée un fichier ou le réactualise ; redirige le canal choisi vers un fichier et force sa création, |
+ | si le fichier existe son contenu est recrée et numéro d'inode du fichier d'origine est conservé. | ||
</code> | </code> | ||
<code bash> | <code bash> | ||
Ligne 643: | Ligne 660: | ||
<< Redirige en entrée une série de données. | << Redirige en entrée une série de données. | ||
</code> | </code> | ||
- | On nomme cette redirection "label". Redirection utilisée dans un document en ligne dont on se sert que pour certaines commandes, comme ftp ou cat.\\ Voir : [[http://abs.traduc.org/abs-5.0-fr/ch18.html#heredocref]]\\ | + | On nomme cette redirection "label".\\ Redirection utilisée dans un document en ligne dont on se sert que pour certaines commandes, comme ftp ou cat.\\ Voir : [[http://abs.traduc.org/abs-5.0-fr/ch18.html#heredocref]]\\ |
Ne pas confondre avec la commande e2label, voir : [[doc:systeme:e2label]] | Ne pas confondre avec la commande e2label, voir : [[doc:systeme:e2label]] | ||
Ligne 649: | Ligne 666: | ||
Écrire un script qui crée le dossier "ABCD" et 4 fichiers vides (nommés a b c d) ; | Écrire un script qui crée le dossier "ABCD" et 4 fichiers vides (nommés a b c d) ; | ||
qui liste le contenu de "ABCD" et qui inscrit le résultat dans un fichier nommé "ls1" qui sera placé dans "ABCD" ; | qui liste le contenu de "ABCD" et qui inscrit le résultat dans un fichier nommé "ls1" qui sera placé dans "ABCD" ; | ||
- | qui depuis le répertoire personnel crée le fichier vide nommé "fichier.txt", liste à nouveau ABCD, inscrit le résultat dans le fichier "ls2", rangé dans "ABCD"; | + | qui depuis le répertoire personnel crée le fichier vide nommé "fichier.txt",\\ liste à nouveau ABCD, inscrit le résultat dans le fichier "ls2", rangé dans "ABCD"; |
qui permet d'inscrire depuis le terminal une ligne de texte dans le fichier nommé "fichier.txt" ; | qui permet d'inscrire depuis le terminal une ligne de texte dans le fichier nommé "fichier.txt" ; | ||
- | puis une deuxième ligne de texte dans "fichier.txt", en affichant dans le terminal, le nombre de lignes, de mots et d'octets que possède le fichier "fichier.txt" ; | + | puis une deuxième ligne de texte dans "fichier.txt", en affichant dans le terminal,\\ le nombre de lignes, de mots et d'octets que possède le fichier "fichier.txt" ; |
- | qui se sert de différentes méthodes tout au long du script pour vérifier au niveau du terminal que chaque commande s'est bien déroulée. | + | se servir de différentes méthodes tout au long du script pour vérifier\\ au niveau du terminal que chaque commande s'est bien déroulée. |
Ligne 659: | Ligne 676: | ||
#!/bin/bash | #!/bin/bash | ||
set -o posix | set -o posix | ||
- | { mkdir ~/ABCD 2>>/dev/null ; echo $? ; cd ABCD && touch a b c d ; echo $? ; ls -l >> ~/ABCD/ls1 ; echo $? ; cd ~ ; pwd ; touch ~/ABCD/fichier.txt ; echo $? ; pwd && ls -l ~/ABCD >> ~/ABCD/ls2 ; echo $? ; read phrase1 && echo ${phrase1} >> ~/ABCD/fichier.txt && echo $? ; read phrase2 ; cat >> ~/ABCD/fichier.txt << EOF | + | { mkdir ~/ABCD 2>>/dev/null ;\ |
+ | echo $? ;\ | ||
+ | cd ABCD && touch a b c d ;\ | ||
+ | echo $? ;\ | ||
+ | ls -l >> ~/ABCD/ls1 ;\ | ||
+ | echo $? ;\ | ||
+ | cd ~ ;\ | ||
+ | pwd ;\ | ||
+ | touch ~/ABCD/fichier.txt ;\ | ||
+ | echo $? ;\ | ||
+ | pwd && ls -l ~/ABCD >> ~/ABCD/ls2 ;\ | ||
+ | echo $? ;\ | ||
+ | read phrase1 && echo ${phrase1} >> ~/ABCD/fichier.txt && echo $? ;\ | ||
+ | read phrase2 ;\ | ||
+ | cat >> ~/ABCD/fichier.txt << EOF | ||
$phrase2 | $phrase2 | ||
EOF | EOF |