Lorsque j'exécute ce qui suit en tant qu'utilisateur normal, tout va bien:
$(dirname `readlink -f $0`)
mais après avoir basculé en root, l'erreur suivante s'est produite:
readlink: invalid option -- 'b'
Try `readlink --help' for more information.
dirname: missing operand
Try `dirname --help' for more information.
Des idées? J'ai essayé sur Fedora 16 local et Amazon EC2, tous deux exécutant le shell bash.
modifier pour l'illustration.
excusez-moi de ne pas avoir illustré davantage le problème ici. voici le scénario:
en utilisant un compte utilisateur normal:
$ pwd
/home/myuser
$ export MY_DIR=$(dirname `readlink -f $0`)
$ echo MY_DIR
/home/myuser
en utilisant root:
# pwd
/root
# export ROOT_DIR=$(dirname `readlink -f $0`)
readlink: invalid option -- 'b'
Try `readlink --help' for more information.
dirname: missing operand
Try `dirname --help' for more information.
# export ROOT_DIR=echo $(dirname `readlink -f -- $0`)
# echo $ROOT_DIR
/root
--
("moins moins" ou "tiret") indique?Si vous voulez vraiment le nom du répertoire du script shell en cours d'exécution:
Oui, c'est un peu maladroit, mais c'est sûr.
Si vous voulez le shell actuel, vous pouvez essayer la suggestion de @ MichaelMrozek d'utiliser
$SHELL
.la source