Perché $ 0 è impostato su -bash?

7

Il primo nome del processo di accesso sembra essere impostato su -bash , ma se faccio una subshell diventa bash . ad esempio:

[email protected]:~# echo $0
-bash
[email protected]:~# bash
[email protected]:~# echo $0
bash

-bash sta causando il fallimento di alcuni script, come . /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

Qualcuno conosce il motivo per cui $0 è impostato su -bash ?

    
posta James Shimer 30.10.2013 - 15:06

1 risposta

4

Se l'output del comando echo $0 è -bash , significa che bash è stato invocato come shell di login. man bash dice da qualche parte alla riga 126:

% Bl0ck_qu0te%

Vedi di più qui: Differenza tra Shell di accesso e Non -Login Shell .

Quindi la tua shell è ancora /bin/bash (questo può essere controllato con il comando echo $SHELL ) e ti suggerisco di usare quel comando che ti dà errore come normalmente:

exec /usr/share/debconf/frontend bash
    
risposta data Radu Rădeanu 30.10.2013 - 17:08

Leggi altre domande sui tag