У меня есть пара флагов в моей конфигурации zsh, и я пытался найти способ запустить новую оболочку с установленными ими, но пока не нашел решения. Какие-либо предложения? Например, я хочу сделать что-то вроде:
zsh --login --export=RC_BOOTSTRAP:true,RC_DEBUG:true
Изменить 01
По сути, я пытаюсь настроить пользовательские параметры оболочки. Лучший метод, который я придумал до сих пор, это:
# set the flags as environment variables and restart the shell
exec env RC_BOOTSTRAP=true RC_DEBUG=true zsh --login
И в моих файлах запуска у меня есть:
# I don't want these flags to propagate into additional shells
# so they need to be 'unexported'
RC_TMP_BOOTSTRAP=${RC_BOOTSTRAP:-false} && unset RC_BOOTSTRAP
RC_BOOTSTRAP=${RC_TMP_BOOTSTRAP} && unset RC_TMP_BOOTSTRAP
RC_TMP_DEBUG=${RC_DEBUG:-false} && unset RC_DEBUG
RC_DEBUG=${RC_TMP_DEBUG} && unset RC_TMP_DEBUG
Это работает, но довольно уродливо. Какие-либо предложения?
Редактировать 02
На основе решения @gilbert:
exec env RC_FLAGS='RC_BOOTSTRAP=true RC_LOG_LEVEL=4' zsh --login
[[ -n $RC_FLAGS ]] && { eval "$RC_FLAGS"; unset RC_FLAGS; }
exec zsh --login
) и одновременно установить флаг, вместо того, чтобы редактировать флаг в файле конфигурации, а затем перезапускать оболочку. - person nfarrar   schedule 24.10.2015