установка вывода команды в переменную

установка вывода команды в переменную

Как поместить вывод в head -15 textfile.txtпеременную, $Xчтобы использовать ее в ifтакой команде:

 if $X = 'disabled' then

?

решение1

x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
    echo "We are disabled"
fi

Как правило, всякий раз, когда вы хотите захватить вывод команды в переменную оболочки, используйте форму: variable="$(command args ...)". variable=Часть — присваивание. $(...)Часть — подстановка команды.

Также обратите внимание, что оболочка не делает ifоператоров в форме if $X = 'disabled'. Оболочка ожидает, что команда следует за ifи оценит код возврата этой команды. В приведенном выше случае я запускаю команду, testкоторая может быть записана как test ...или [ ... ].

Многие считают, что лучше всего использовать переменные в нижнем регистре для скриптов оболочки. Это связано с тем, что системные переменные имеют верхний регистр, и вы не хотите случайно перезаписать одну из них. С другой стороны, системная переменная не вызывается, Xтак что это не является настоящей проблемой.

Связанный контент