Согласно man bash
:
PS1 установлен, и $ - включает меня, если удар является интерактивным, позволяя сценарию оболочки или файлу запуска тестировать это состояние.
Таким образом, можно использовать:
if [[ $- == *i* ]]
then
do_interactive_stuff
fi
Также:
Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, удар читает и выполняет команды от/etc/bash.bashrc и ~/.bashrc, если эти файлы существуют.
Так ~/.bashrc
только получен для интерактивных оболочек. Иногда, люди получают его от ~/.bash_profile
или ~/.profile
который является неправильным, так как это вмешивается в ожидаемое поведение. Если Вы хотите упростить обслуживание кода, который распространен, необходимо использовать отдельный файл, чтобы содержать общий код и получить его независимо из обоих емкостно-резистивных файлов.
Лучше, если нет никакого вывода к stdout от входа в систему rc
файлы такой как ~/.bash_profile
или ~/.profile
так как это может вмешаться в правильное функционирование rsync
например.
В любом случае это - все еще хорошая идея протестировать на интерактивность, так как неправильная конфигурация может существовать.
Распространение записей DNS может занять до трех дней, когда разные поставщики обновляются в разное время. Подождите пару дней, и эта проблема должна исчезнуть.