Bonjour,
Un petit truc utile à connaître: l'option chase_links de zsh permet
de corriger un bug de conception des divers shells.
Préparation des fichiers:
% mkdir -p foo1/foo2
% ln -s foo1/foo2 bar
% echo OK > foo1/file
% echo 'cd .. && cat file' > foo1/foo2/catfile
Sous divers shells:
% cd bar
% cat ../file
OK
% sh catfile
cat: file: No such file or directory
Avec zsh et l'option chase_links:
% setopt chase_links
% cd bar
% cat ../file
OK
% sh catfile
OK
L'option chase_links n'est peut-être pas très intuitive à première vue,
car quand on fait le "cd bar", un pwd donne ".../foo1/foo2" au lieu de
".../bar". Mais dans la pratique, résoudre les liens symboliques lors
du cd fonctionne bien mieux lorsque ".." est utilisé.
--
Vincent Lefèvre <vincent(a)vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Bonjour,
Me voici confronté à un truc qui me dépasse un peu :
echo comprend bien les options en ligne de commande mais plus dans un script !
Il y a un paramètre qqpart qui donne un comportement différent au bash en mode interactif ?
En ligne de commande :
for i in $(seq 1 5); do echo -en '.'; sleep 1; done;
m'affiche bien sur la même ligne un point par seconde et sort.
mais si je met ça dans un script et que je lance le script, ça donne :
-en .
-en .
-en .
-en .
-en .
Et tout aussi curieux:
$sh -c "for i in $(seq 1 5); do echo -en '.'; sleep 1; done;"
sh: Syntax error: word unexpected (expecting "do")
OK, le sous shell marche pas dans ces conditions, on fait alors
$sh -c "for i in 1 2 3 4 5; do echo -en '.'; sleep 1; done;"
-en .
-en .
-en .
-en .
-en .
C'est pas un pb d'espace insécable (j'ai fait un copier/coller), je vois vraiment pas...
J'ai essayé echo -e -n "." mais ça change rien.
Une idée ?
Mon shell est malade ? (GNU bash, version 3.1.17(1)-release - i486-pc-linux-gnu)
Daniel
Bonjour,
Dans un script awk, peut-on modifier FS et obliger awk à redécouper la ligne courante avec ces nouveaux séparateurs ?
C'est pour avoir un 1er traitement avec un séparateur et un 2e traitement avec un autre séparateur.
C'est possible ?
question subsidiaire : on peut virer les dernier champs en diminuant NF, mais peut-on virer les premiers ? (on peut les remplir avec des chaines
vides, mais $0 contient encore ces champs vides séparés par des espaces)
Daniel
PS: tout ça n'est pas important, je continue juste mon apprentissage sed/awk avec des exercices stupides (faut bien qu'une immobilisation serve à
qqchose) ;-)
PS2: la réécriture de $0 marche avec OFS (si on touche à NF avant le print) mais j'y arrive pas avec FS... exemple (merci Christophe Blaess et son
bouquin "langages de script sous linux") :
ls -l|awk '{print$0; OFS="#";print $0}'
et
ls -l|awk '{print$0; OFS="#";NF=NF;print $0}'
Bonjour,
Je m'essaie à un script sed un peu plus élaboré que d'habitude (je ne le met pas ici car long) et je n'arrive pas à faire un branchement dans un bloc
d'instructions.
par exemple
/pattern/ {
# instructions diverses
/pattern2/ ! b label
}
: label
# autres instructions
ne marche pas, pas plus que
/pattern/ {
# instructions diverses
: label
# autres instructions
/pattern2/ ! b label
}
le branchement n'a pas lieu, ça sort du script à la rencontre de 'b label' (je suis sûr que je passe dans le bloc et que pattern2 est vérifié en
remplaçant 'b label' par '=' pour afficher le n° de ligne).
Un moyen de contourner ça ?
Merci
Daniel
Bonjour les gens,
j'ai parlé avec Denis Bodor - le rédacteur en chef de Linux Mag France -
qui est intéressé par un article sur l'utilisation avancé de ZSH (j'en
ai d'ailleurs parlé il y a quelques jours sur cette liste). Mais après
une discussion avec Marc, on pourrait très bien essayer de produire une
petite documentation par mois à nous tous.
Qu'en pensez vous ?
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group
Bonjour à tous,
un petit vote, pour ou contre la notification du wiki ?
Je pensais que les modifs marquées en mineur ne générait pas une
notification par mail, mais je me suis trompé. A terme, je vais hacker
ou whishlist ca, mais en attendant, je voudrais connaître votre avis.
(n'oubliez pas qu'une règle dans votre MUA/MDA est relativement facile à
implémenter pour supprimer les messages du wiki)
Merci d'avance
--
http://asyd.net/home/ - Home Page
http://guses.org/home/ - French Speaking (Open)Solaris User Group