Как в терминале вывести самую короткую переменную окружения?

Рейтинг: 2Ответов: 3Опубликовано: 10.03.2015

Добрый вечер. Не подскажете, как в терминале вывести самую короткую переменную окружения?

Ответы

▲ 2
set -o posix && set | awk -F= 'NF==2{if (name=="" || length(name)>length($1)) name=$1} END{print name}'
▲ 2
env | awk '{print length, $0}' | sort -n | awk '{$1=""; print $0 }' | head -1
▲ 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"