Nama proses login pertama tampaknya diatur untuk -bash
, tetapi jika saya subshell maka itu menjadi bash
. sebagai contoh:
root@nowere:~# echo $0
-bash
root@nowere:~# bash
root@nowere:~# echo $0
bash
-bash
menyebabkan beberapa skrip gagal, seperti . /usr/share/debconf/confmodule
exec /usr/share/debconf/frontend -bash
Can't exec "-bash": No such file or directory at /usr/share/perl/5.14/IPC/Open3.pm line 186.
open2: exec of -bash failed at /usr/share/perl5/Debconf/ConfModule.pm line 59
Adakah yang tahu alasan mengapa $0
diatur -bash
?
command-line
bash
scripts
debconf
James Shimer
sumber
sumber
Jawaban:
Jika output dari
echo $0
perintah-bash
itu berartibash
itu dipanggil sebagai shell login.man bash
kata suatu tempat di baris 126:Lihat lebih lanjut di sini: Perbedaan antara Shell Login dan Shell Non-Login .
Jadi shell Anda masih
/bin/bash
(ini dapat diperiksa denganecho $SHELL
perintah) dan saya sarankan Anda untuk menggunakan perintah yang memberi Anda kesalahan seperti biasa:sumber