
Как поместить вывод в 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
так что это не является настоящей проблемой.