Cuando ejecuto lo siguiente como usuario normal, todo está bien:
$(dirname `readlink -f $0`)
pero después de cambiar a root, ocurrió el siguiente error:
readlink: invalid option -- 'b'
Try `readlink --help' for more information.
dirname: missing operand
Try `dirname --help' for more information.
¿Algunas ideas? Probé en Fedora 16 local y Amazon EC2, ambos ejecutando bash shell.
editar para ilustración.
disculpe que no ilustre más el problema aquí. Aquí está el escenario:
usando una cuenta de usuario normal:
$ pwd
/home/myuser
$ export MY_DIR=$(dirname `readlink -f $0`)
$ echo MY_DIR
/home/myuser
usando 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
--
("menos menos" o "guión guión")? NoSi realmente desea el nombre del directorio del script de shell que se está ejecutando:
Sí, es un poco turbio, pero es seguro.
Si desea el shell actual, puede probar la sugerencia de uso de @ MichaelMrozek
$SHELL
.fuente