Если у вас Bash 4.0 (выпущен в 2009 году), вы можете объявить host
, чтобы преобразование в нижний регистр выполнялось автоматически при назначении:
declare -l host
host=$(hostname -s)
Если код находится в функции, тогда лучше по возможности локализовать переменные, поэтому
local -l host
host=$(hostname -s)
только немного длиннее, чем код, который не вводит имя хоста в нижнем регистре.
Возможно сделать декларацию и присваивание одновременно
declare -l host=$(hostname -s) # BAD CODE
но Shellcheck будет правильно жаловаться, что это маскирует состояние выхода hostname
, поэтому вы не можете обнаружить или обработать ошибку.
В этом конкретном случае объявление и присвоение могут быть безопасно выполнены одновременно, если вы используете встроенную переменную Bash HOSTNAME
вместо внешней команды hostname
:
declare -l host=${HOSTNAME%%.*}