Ketika saya menjalankan yang berikut ini sebagai pengguna normal, semuanya baik-baik saja:
$(dirname `readlink -f $0`)
tetapi setelah saya beralih ke root, kesalahan berikut terjadi:
readlink: invalid option -- 'b'
Try `readlink --help' for more information.
dirname: missing operand
Try `dirname --help' for more information.
Ada ide? Saya mencoba di Fedora 16 dan Amazon EC2 lokal, keduanya menjalankan bash shell.
sunting untuk ilustrasi.
mohon maaf karena saya tidak menggambarkan masalah ini lebih lanjut di sini. inilah skenarionya:
menggunakan akun pengguna normal:
$ pwd
/home/myuser
$ export MY_DIR=$(dirname `readlink -f $0`)
$ echo MY_DIR
/home/myuser
menggunakan 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
--
ditunjukkan oleh ("minus minus" atau "dasbor")? Nevermind - Saya menemukan jawabannya di sini: /unix//q/11376Jika Anda benar-benar menginginkan nama direktori skrip shell yang sedang dijalankan:
Ya, ini agak tidak jelas, tapi aman.
Jika Anda menginginkan shell saat ini, Anda dapat mencoba saran @ MichaelMrozek untuk menggunakan
$SHELL
.sumber