Как в терминале вывести самую короткую переменную окружения?
Добрый вечер. Не подскажете, как в терминале вывести самую короткую переменную окружения?
Источник: Stack Overflow на русском
Добрый вечер. Не подскажете, как в терминале вывести самую короткую переменную окружения?
set -o posix && set | awk -F= 'NF==2{if (name=="" || length(name)>length($1)) name=$1} END{print name}'
env | awk '{print length, $0}' | sort -n | awk '{$1=""; print $0 }' | head -1
Работает только в bash, не в sh. Зато без awk =)
for i in `env`; do
key=${i%=*}
[[ -z $short_env ]] && short_env=$key;
[[ ${#key} -lt ${#short_env} ]] && short_env=$key;
done
echo "Shortest env variable: $short_env"