Как я могу выполнить программу (в частности, псевдоним bash) с переменными среды по умолчанию?
Рассмотрим этот пример:
export test="something I dont want to exist"
alias _xterm='xterm -fn 7x13 -fa "Ubuntu Mono:size=12:antialias=false"'
_xterm
В порожденном экземпляре xterm переменная $test не должна быть установлена.
Имена переменных среды по умолчанию записываются заглавными буквами. Теперь, предполагая, что вы будете определять новые переменные среды с маленькими буквами (как это в вашем примере test), вместо этого использовать простой псевдоним _xterm, вы можете использовать функцию _xterm, где вы должны отключить новую переменные среды и сохраняйте только переменные среды по умолчанию для нового экземпляра оболочки:
_xterm () {
for var in $(env | cut -d"=" -f1)
do
if [[ ! "$var" =~ [^a-z] ]]; then
unset $var #or env -u $var
fi
done
xterm -fn 7x13 -fa "Ubuntu Mono:size=12:antialias=false"
}
Таким образом, новые переменные среды не доступны в новом экземпляре оболочки, но когда вы возвращаетесь к экземпляру старой оболочки вы все равно можете их использовать.