evaluation indirecte de paramètre en shell portable
22 réponses
rixed
Coucou la liste.
Je suppose que c'est une FAQ, mais je n'ai pas réussit à mettre la main
sur la FAQ du groupe.
Donc, question :
Sous zsh, on peut faire :
$ toto="valeur de toto"
$ titi=toto
$ echo ${(P)titi}
valeur de toto
$ youpi
command not found: youpi
J'aimerai savoir s'il n'y a pas moyen de faire cela en shell portable.
Genre quelquechose qui fonctionnerait aussi bien avec bash, zsh, tcsh...
Et pourquoi pas aussi en shell POSIX.
en haut du script si on veut utiliser des features specific a bash. Je suis bien d'accord.
Je trouve bien plus facile de commencer un script par: wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.bz2 tar jxf bash-2.05.tar.bz2 cd bash-2.05 ./configure make make install bash script.bash que de s'embêter à faire des scripts "portables"...
"tar jxf" n'est pas portable ...
Bien sur que si:
wget ftp://ftp.gnu.org/gnu/tar/tar-1.15.tar.gz gzip -d < tar-1.15.tar.gz | tar -xf - cd tar-1.15 ./configure make make install
et après, on peut utiliser tar zxf ou tar jxf comme on veut. (On peut avoir à installer bzip2 et gzip avant si ce n'est pas déjà fait). Voir Fink sur MacOSX, ports sur *BSD, etc...
"You can tell the Lisp programmers. They have pockets full of punch cards with close parentheses on them." --> http://tinyurl.com/8ubpf
Jean-Louis Liagre <jlliagre@localhost.fr> writes:
#! /usr/bin/env bash
en haut du script si on veut utiliser des features specific a
bash.
Je suis bien d'accord.
Je trouve bien plus facile de commencer un script par:
wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.bz2
tar jxf bash-2.05.tar.bz2
cd bash-2.05
./configure
make
make install
bash script.bash
que de s'embêter à faire des scripts "portables"...
"tar jxf" n'est pas portable ...
Bien sur que si:
wget ftp://ftp.gnu.org/gnu/tar/tar-1.15.tar.gz
gzip -d < tar-1.15.tar.gz | tar -xf -
cd tar-1.15
./configure
make
make install
et après, on peut utiliser tar zxf ou tar jxf comme on veut. (On peut
avoir à installer bzip2 et gzip avant si ce n'est pas déjà fait).
Voir Fink sur MacOSX, ports sur *BSD, etc...
en haut du script si on veut utiliser des features specific a bash. Je suis bien d'accord.
Je trouve bien plus facile de commencer un script par: wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.bz2 tar jxf bash-2.05.tar.bz2 cd bash-2.05 ./configure make make install bash script.bash que de s'embêter à faire des scripts "portables"...
"tar jxf" n'est pas portable ...
Bien sur que si:
wget ftp://ftp.gnu.org/gnu/tar/tar-1.15.tar.gz gzip -d < tar-1.15.tar.gz | tar -xf - cd tar-1.15 ./configure make make install
et après, on peut utiliser tar zxf ou tar jxf comme on veut. (On peut avoir à installer bzip2 et gzip avant si ce n'est pas déjà fait). Voir Fink sur MacOSX, ports sur *BSD, etc...
"You can tell the Lisp programmers. They have pockets full of punch cards with close parentheses on them." --> http://tinyurl.com/8ubpf
Jean-Louis Liagre
Pascal Bourguignon wrote:
Jean-Louis Liagre writes:
#! /usr/bin/env bash
en haut du script si on veut utiliser des features specific a bash. Je suis bien d'accord.
Je trouve bien plus facile de commencer un script par: wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.bz2 tar jxf bash-2.05.tar.bz2 cd bash-2.05 ./configure make make install bash script.bash que de s'embêter à faire des scripts "portables"...
"tar jxf" n'est pas portable ...
Bien sur que si:
gnu tar est bien sûr portable, l'option j est une extension non POSIX absente de la plupart des autres implémentations de tar (mais présente dans star).
wget ftp://ftp.gnu.org/gnu/tar/tar-1.15.tar.gz gzip -d < tar-1.15.tar.gz | tar -xf - cd tar-1.15 ../configure make make install
make install peut échouer si /usr/local est en read-only.
et après, on peut utiliser tar zxf ou tar jxf comme on veut.
Seulement en mettant son chemin complet ou si on a /usr/local/bin en premier dans son PATH.
Pascal Bourguignon wrote:
Jean-Louis Liagre <jlliagre@localhost.fr> writes:
#! /usr/bin/env bash
en haut du script si on veut utiliser des features specific a
bash.
Je suis bien d'accord.
Je trouve bien plus facile de commencer un script par:
wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.bz2
tar jxf bash-2.05.tar.bz2
cd bash-2.05
./configure
make
make install
bash script.bash
que de s'embêter à faire des scripts "portables"...
"tar jxf" n'est pas portable ...
Bien sur que si:
gnu tar est bien sûr portable, l'option j est une extension non POSIX absente de
la plupart des autres implémentations de tar (mais présente dans star).
wget ftp://ftp.gnu.org/gnu/tar/tar-1.15.tar.gz
gzip -d < tar-1.15.tar.gz | tar -xf -
cd tar-1.15
../configure
make
make install
make install peut échouer si /usr/local est en read-only.
et après, on peut utiliser tar zxf ou tar jxf comme on veut.
Seulement en mettant son chemin complet ou si on a /usr/local/bin en premier
dans son PATH.
en haut du script si on veut utiliser des features specific a bash. Je suis bien d'accord.
Je trouve bien plus facile de commencer un script par: wget ftp://ftp.gnu.org/gnu/bash/bash-2.05.tar.bz2 tar jxf bash-2.05.tar.bz2 cd bash-2.05 ./configure make make install bash script.bash que de s'embêter à faire des scripts "portables"...
"tar jxf" n'est pas portable ...
Bien sur que si:
gnu tar est bien sûr portable, l'option j est une extension non POSIX absente de la plupart des autres implémentations de tar (mais présente dans star).
wget ftp://ftp.gnu.org/gnu/tar/tar-1.15.tar.gz gzip -d < tar-1.15.tar.gz | tar -xf - cd tar-1.15 ../configure make make install
make install peut échouer si /usr/local est en read-only.
et après, on peut utiliser tar zxf ou tar jxf comme on veut.
Seulement en mettant son chemin complet ou si on a /usr/local/bin en premier dans son PATH.