У меня есть два оператора для возврата из ~/.bashrc
если оболочка не является интерактивной, вероятно, от двух версий Ubuntu, но я не могу восстановить, какой является более новым (и я принимаю таким образом лучше), и я интересуюсь эффектом разных подходов:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
по сравнению с.
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
По словам Хакеров Bash Wiki, самый надежный метод должен проверить на существование i
буква в переменной $-
(Ваш второй метод).
Существуют более чистые способы реализовать это действие, как следующее:
[[ $- == *i* ]] || return
Для получения дополнительной информации проверьте этот ответ на сообществе Unix&Linux StackExchange.