Shell secours » Historique » Version 14
Julien Enselme, 27/07/2014 15:52
Savoir si un script est lancé dans un shell interactif
1 | 9 | Julien Enselme | Liste de commandes pour des actions spécifiques. Pas/peu de détails/explications, [[Petit precis de shell|prérequis de shell]] supposés connus. Si une commande est donnée pour bash uniquement, cela signifie qu'elle n'est pas compatible avec le shell POSIX ou d'autres implémentations basiques mais est vraisemblablement disponible dans les autres implémentations évoluées telles que zsh. |
---|---|---|---|
2 | 1 | Julien Enselme | |
3 | 2 | Julien Enselme | {{toc}} |
4 | |||
5 | 1 | Julien Enselme | h1. Générer des nombres aléatoires |
6 | |||
7 | 4 | Julien Enselme | * @$RANDOM@ (*bash uniquement*) : tire un nombre aléatoirement entre 0 - 32767 |
8 | * @fortune | cksum | cut -f1 -d" "@ : si RANDOM n'est pas disponible, la commande @fortune@ qui tire aléatoirement un proverbe l'est peut être. On en prend la somme pour obtenir un nombre. |
||
9 | * @seed=`( echo $$ ; time ps ; w ; date ) | cksum | cut -f1 -d" " `@ : utilise la date où le PID du dernier processus. |
||
10 | * @dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" "@ : utilise l'entrée d'entropie du noyau. C'est la meilleur méthode, la plus robuste pour générer de l'aléatoire. |
||
11 | 1 | Julien Enselme | |
12 | h1. Prendre les x caractères d’une chaîne |
||
13 | |||
14 | @cut -cN-M@ |
||
15 | |||
16 | h1. Revenir dans le répertoire précédent |
||
17 | |||
18 | @cd -@ |
||
19 | |||
20 | h1. Vérifier paramètre non passé |
||
21 | |||
22 | 11 | Julien Enselme | @! -z "$2"@ ou @-n "$2"@ |
23 | 1 | Julien Enselme | |
24 | h1. Trier |
||
25 | |||
26 | @sort@ |
||
27 | |||
28 | 8 | Julien Enselme | h1. Compter |
29 | 1 | Julien Enselme | |
30 | 3 | Julien Enselme | * @wc@ : pour les mots, caractères, nombres de lignes |
31 | 8 | Julien Enselme | * @let@ ou @$(( 6+8 )) : pour les opérations mathématiques |
32 | 1 | Julien Enselme | |
33 | 6 | Ismaeil Abouljamal | h1. Savoir si une chaîne est contenue dans une autre |
34 | 3 | Julien Enselme | |
35 | * @[[ reg_exp =~ contenant ]]@ *bash uniquement* |
||
36 | 7 | Geoffroy Desvernay | * @grep -q "reg_exp" chaine@ |
37 | 3 | Julien Enselme | |
38 | 1 | Julien Enselme | h1. Renommer les fichiers en fonction d’une expression régulière |
39 | |||
40 | 3 | Julien Enselme | <pre> |
41 | <code class="bash"> |
||
42 | for file in `ls` ; do |
||
43 | a=`echo $file | sed 's/\(.*\)\.dump\(.*\)\.sql/\2.\1.sql/'` |
||
44 | mv $file $a |
||
45 | done |
||
46 | </code> |
||
47 | </pre> |
||
48 | |||
49 | 10 | Julien Enselme | On peut également "utiliser Emacs":http://assos.centrale-marseille.fr/jenselme/content/emacs-edition-multiple. |
50 | 5 | Julien Enselme | |
51 | h1. Faire une copie statique d’un site |
||
52 | |||
53 | wget -mkKE assos.centrale-marseille.fr/NOM |
||
54 | 12 | Julien Enselme | |
55 | h1. Passer des caractères de fin de ligne DOS à UNIX |
||
56 | |||
57 | <pre> |
||
58 | <code class="php"> |
||
59 | sed $'s/\r$//' VOTRE_FICHIER > tmp && mv tmp VOTRE_FICHIER |
||
60 | </code> |
||
61 | </pre> |
||
62 | 13 | Julien Enselme | |
63 | h1. Passer du texte en minuscule |
||
64 | |||
65 | <pre> |
||
66 | a=COUCOU |
||
67 | echo ${a,,} |
||
68 | </pre> |
||
69 | 14 | Julien Enselme | |
70 | h1. Savoir si un script est lancé dans un shell interactif |
||
71 | |||
72 | La commande @tty -s@ renvoie 0 si le script est lancé dans un terminal interactif et 1 sinon. |