« Catégorie:Trucs Shell » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
Ligne 5 : Ligne 5 :


Il arrive parfois qu'on fasse saisir une réponse
Il arrive parfois qu'on fasse saisir une réponse
read rep
<code multi>read rep</code>


Puis, on veut tester si la réponse est "o"
Puis, on veut tester si la réponse est "o"
if test $rep = o
<code multi>if test $rep = o</code>


Le pb, c'est que si l'utilisateur tape "return" sans saisir de réponse, la variable "rep" est vide... et le test devient bancal car il lit
Le pb, c'est que si l'utilisateur tape "return" sans saisir de réponse, la variable "rep" est vide... et le test devient bancal car il lit
if test = o
<code multi>if test = o</code>
Erreur de syntaxe, l'option "=" veut absolument 2 opérandes
Erreur de syntaxe, l'option "=" veut absolument 2 opérandes


La solution: Encadrer la variable et la valeur par des guillemets
La solution: Encadrer la variable et la valeur par des guillemets
if test "$rep" = "o"
<code multi>if test "$rep" = "o"</code>


Même si "rep" est vide, le shell verra
Même si "rep" est vide, le shell verra
if test "" = "o"
<code multi>if test "" = "o"</code>
Et là, il aura bien ses deux opérandes à comparer l'un par rapport à l'autre.
Et là, il aura bien ses deux opérandes à comparer l'un par rapport à l'autre.



Version du 4 juillet 2008 à 03:26

Les commandes du shell, leurs paramètres, les scripts...

Trucs: Tester une réponse sans se soucier si la réponse est vide

Il arrive parfois qu'on fasse saisir une réponse read rep

Puis, on veut tester si la réponse est "o" if test $rep = o

Le pb, c'est que si l'utilisateur tape "return" sans saisir de réponse, la variable "rep" est vide... et le test devient bancal car il lit if test = o Erreur de syntaxe, l'option "=" veut absolument 2 opérandes

La solution: Encadrer la variable et la valeur par des guillemets if test "$rep" = "o"

Même si "rep" est vide, le shell verra if test "" = "o" Et là, il aura bien ses deux opérandes à comparer l'un par rapport à l'autre.

Supprimer avec rm avec un filtre par utilisateur

Supprimer avec rm avec un filtre par utilisateur

il y a 2 méthodes , la première étant la moins propre. Mais la plus rapide.

  1. !/bin/sh
  2. la première
  3. find "$p" -user "tnt" -print0 | xargs -0 /bin/rm -f 2>/dev/null && find "$p" -user "tnt" -print0 | xargs -0 /bin/rmdir -p 2>/dev/null
  1. la deuxième
  2. find "$1" -user "$2" -exec /bin/rm -vf '{}' \; 2>/dev/null && find "$1" -user "$2" -exec /bin/rmdir -p '{}' \; 2>/dev/null

Ceci évite de supprimer des fichiers qui appartiennent à un autre utilisateur par exemple root, ou un fichier qui aurai les droits 0777 d'un autre utilisateur.

Simple et plus sûre que de faire un rm -r ./*

Les touches ASCII

il est possible d'obtenir un caractère en le tapant au format ASCII

ASTUCE N° 1 par exemple dans votre éditeur de texte tapez CTRL+SHIFT (restez appuyer) 060 (relâcher) simple et efficace si on veut un caractère qui manque et qui n'est pas reconnu.

ASTUCE N° 2

Comment on fait pour trouver le numéro de caractère ? ouvrer votre programme: "table de caractère" (gnome en console taper gucharmap) ou un autre outil du même genre.

Cliquer sur un caractère puis regarder en bas c'est écrit :)

C'est valable sous windows aussi mais avec ALT , évidemment ca peut varier suivant votre clavier le plus dur est de trouver la combinaison des 2 touche ici ALT+CTRL

Pages dans la catégorie « Trucs Shell »

Cette catégorie comprend 39 pages, dont les 39 ci-dessous.