Почему 0$ установлены на - удар?

Сначала имя процесса входа в систему, кажется, определяется к -bash, но если я подокружаю затем, это становится bash. например:

root@nowere:~# echo $0
-bash
root@nowere:~# bash
root@nowere:~# echo $0
bash

-bash заставляет некоторые сценарии перестать работать, такой как . /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

Любой знает причину почему $0 установлен на -bash?

8
задан 14 October 2014 в 20:05

1 ответ

Если вывод echo $0 команда -bash это означает это bash был вызван как оболочка входа в систему. man bash говорит где-нибудь в строке 126:

A  login shell is one whose first character of argument zero is a -, or 
one started with the --login option.

Посмотрите больше о здесь: Различие между Входом в систему Shell и Невходом в систему Shell.

Таким образом, Ваша оболочка тиха /bin/bash (с этим можно свериться echo $SHELL команда) и я предлагаю, чтобы Вы использовали ту команду, которые дают Вам ошибку как обычно:

exec /usr/share/debconf/frontend bash
5
ответ дан 14 October 2014 в 20:05

Другие вопросы по тегам:

Похожие вопросы: