À ce sujet, il y a eu de menus soucis lors du passage de bash à dash comme shell par défaut pour /bin/sh, initié si j’ai bonne mémoire par Ubuntu puis mis en place quelque temps après par Debian (sid/squeeze).
L’avantage c’est que ça a permis de nettoyer les quelques scripts qui utilisaient des extensions « propriétaires » à bash.[/quote]
Non c’est sous l’impulsion de Debian. Tu crois vraiment qu’ubuntu a la gueule des barbus qui sont stricts avec les standards ? Le « d » de dash veut dire Debian et etch devait utiliser dash mais ce ne fut pas le cas par manque de temps.
Oui c’est pour le même genre de raison qu’il m’arrive de scripter avec zsh. Regarde celui là :
dir="$HOME/Téléchargements"
# On cherche les fichiers plus vieux d'une semaine
date=$((EPOCHSECONDS-60*60*24*7*3))
IFS='
'
for file in $dir/**/* ; do
if [ ! -d $file ]; then
zstat -A atime +atime $file
if [ $atime -lt $date ]; then
rm $file
fi
else
rmdir $file 2> /dev/null
fi
done
}[/code]
Aucun appel à un programme extérieur, du zsh pur et dur.
Qui est cencé se lancer dans un mode de compatibilité. C’est pas parce qu’une erreur est généralisée qu’il faut l’utiliser…
Je me suis déjà posé la question de l’usage de env.
Je ne sais pas où c’est défini (POSIX ? ni la page man ni la page info ne donnent d’information là de ssus), donc quand c’est du sh, je préfère mettre /bin/sh car je sais que c’est un standard.
[quote=“MisterFreez”]Je me suis déjà posé la question de l’usage de env.
Je ne sais pas où c’est défini (POSIX ? ni la page man ni la page info ne donnent d’information là de ssus), donc quand c’est du sh, je préfère mettre /bin/sh car je sais que c’est un standard.[/quote]
[quote=“L0u!$”][quote=“MisterFreez”]Je me suis déjà posé la question de l’usage de env.
Je ne sais pas où c’est défini (POSIX ? ni la page man ni la page info ne donnent d’information là dessus), donc quand c’est du sh, je préfère mettre /bin/sh car je sais que c’est un standard.[/quote]
J’ai entendu dire que sous certains unixes, les shells n’étaient pas forcément dans le même dossier (/usr/bin/bash par exemple) et que donc en utilisant env, c’était plus portable (lui serait toujours dans /usr/bin). À confirmer…
Bon voila j’ai effectué des recherches supplémentaires et à partir d’aujourd’hui mes scripts utilisent env dans leur shaban. En effet la page manuel de env sous OpenBSD indique clairement que c’est une commande POSIX (du moins le fonctionnement par défaut et l’option -i).
Debian propose aussi 9base, un paquet qui réunit :
un shell, le rc shell
toute une floppée d’utilitaires :awk
basename
bc
cal
cat
cleanname
date
dc
du
echo
factor
fortune
freq
getflags
grep
hoc
ls
mk
mkdir
mtime
primes
rc
read
sed
seq
sleep
sort
tail
tee
test
touch
tr
troff
uniq
yacc
quelques bibliothèques :
Plan 9 libc, libbio, libregexp, libfmt et libutf
l’ensemble comprenant le shell, les utilitaires et les bibliothèques est plus petit que bash tout seul.
La seule doc sur le rc shell que je connaisse est en anglais : doc.cat-v.org/plan_9/4th_edition/papers/rc
Dans le paquet debian, il manque peut-être 2 ou 3 utilitaires de cette liste, il seront présent lors de la prochaine version de 9base en Sid.
[quote=« MisterFreez »]Aucun appel à un programme extérieur, du zsh pur et dur. [/quote]Je ne connais pas zsh, mais ta remarque pose question.
Zsh serait il au shell ce qu’emacs est à l’éditeur de texte ?
[quote=« eol »][quote=« MisterFreez »]Aucun appel à un programme extérieur, du zsh pur et dur. [/quote]Je ne connais pas zsh, mais ta remarque pose question.
Zsh serait il au shell ce qu’emacs est à l’éditeur de texte ? [/quote]
Exactement en mieux (parce que c’est pas du lisp). zsh intègre de bas eu module pour faire du FTP et un module pour faire du TCP (ainsi qu’un module curse).
ZSH c’est à la fois un shell interactif puissant et un langage de programmation puissant.