2012-05-05 2 views
0

Если я использую метод экспортных переменных, следующая оболочка bash может игнорировать eof (нажмите^D не выйдет). Но, я хочу, чтобы ребенок bash мог выйти, нажав^D. Может ли какая-либо опция командной строки bash выполнить эту работу?Как проигнорировать на следующий баш?

export ignoreeof=1 
exec bash # assume this bash's pid = 1234 
bash$ ^D 
bash$ Use "exit" to leave the shell. 
bash$ bash # assume this bash's pid = 2234 
bash$ ^D <-- I wish this could exit bash(pid=2234) 
+0

Переменная должна быть во всех шапках: 'IGNOREEOF = 1' –

ответ

0

Уильям, спасибо ваш намек.

exec bash -o ignoreeof # assume this bash's pid = 1234 
bash$ ^D 
bash$ Use "exit" to leave the shell. 
bash$ bash # assume this bash's pid = 2234 
bash$ ^D <-- exit bash(pid=2234) 
1
ignoreeof=0 exec bash 

должен сделать трюк

+0

Просто попробовал. Он не может работать. Ребенок bash внутри bash наследует переменную среды ignoreeof. –

+0

Процесс, который является exec'd (он не является дочерним, а оболочка становится новой оболочкой) будет игнорировать значение 0. –

+0

Не могли бы вы перечитать мой вопрос, я приведу пример. Может быть, вы неправильно поняли мой вопрос. –

Смежные вопросы