2013-09-11 3 views
2

Я знаю, что сценарий .bashrc должен быть запущен как source .bashrc или . .bashrc, поэтому изменения в экспорте сохраняются во время сеанса, но мне нужно отменить половину скрипта bashrc, не выходя из сеанса.Abort из сценария .bashrc

В настоящее время я выполняю двоичный поиск точки, в которой я выдаю команду, предполагающую существование tty. Это делается для того, чтобы не получить сообщение stdin: is not a tty. Таким образом, самый простой способ: перерыв выполнение сценария bashrc, но я не нашел способ сделать это.

Как я прервать из половины выполнение внутри .bashrc сценария без завершения сеанса? (Он же с помощью команды выхода)

ответ

6

Вы можете использовать команду return к "выходу" вашего сценария. Обычно ошибка заключается в использовании return вне функции, но вы можете представить весь скрипт как функцию, если она равна source d.

+0

Я только что понял это. Работает на CentOS 6.4 x86_64. Спасибо. –

1

насчет

if [ yourbreakcondition ]; then 
    ... 
else 
    ... 
    The rest of bashrc here 
    ... 
fi 
+1

Это именно то решение, которого я пытался избежать. Я с удовольствием выбираю вариант, если не будет более простого решения. –

1

Просто позвоните возврат в течение вашего Bashrc.

Пример

if [ true ] 
then 
    return 
fi 
Смежные вопросы