Le nom du premier processus de connexion semble être défini sur -bash
, mais si je sous-shell, il devient bash
. par exemple:
root@nowere:~# echo $0
-bash
root@nowere:~# bash
root@nowere:~# echo $0
bash
-bash
provoque l'échec de certains scripts, tels que . /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
Quelqu'un connaît la raison pour laquelle $0
est défini sur -bash
?
Si le résultat de la commande echo $0
est -bash
, cela signifie que bash
a été appelé en tant que shell de connexion. man bash
dit quelque part à la ligne 126:
A login Shell is one whose first character of argument zero is a -, or one started with the --login option.
Plus d'informations ici: Différence entre les shell de connexion et non-login .
Donc, votre shell est toujours /bin/bash
(ceci peut être vérifié avec la commande echo $Shell
) et je vous suggère d'utiliser cette commande qui vous donnera une erreur normalement:
exec /usr/share/debconf/frontend bash