Мне интересно, правильно ли я сделал это. Я пытаюсь изучить BASH и действительно хочу изучить «Best Practices» в первый раз, поэтому я не принимаю sloppy/easy way.IF/THEN Best Practices
Что мне интересно, могу ли я установить инструкцию IF/THEN, как я сделал ниже? Почему или почему нет? Будет ли блок ниже обслуживаться лучше, используя вместо этого elif?
И, наконец, я надеялся, что кто-то может пролить свет на меня при использовании «$ {foo}» и «$ (bar)» ... фигурных скобок или скобок? Я (до сих пор) использовал фигурные скобки, когда я определяю переменную «foo =« bar », позже называется« $ {foo] и скобкой, когда я беру команду «foo = $ (find. - type f -name bar) «будет называться« $ foo »... или, может быть, я просто ушел и дважды делаю то же самое, я не знаю ... Мне бы хотелось услышать, ве все должны сказать: D
# Downloading the script bundle
echo "Lets get the script bundle and get to work!"
wget http://place.to.get/att.tar
# Logic switch, checking if the TAR bundle exists. If it does
# verify the MD5 Checksum (to prevent corruption).
# If verfied, then un-tar the bundle in our working directory
# otherwise, exit with an error code, otherwise
if [[ -f att.tar ]]
then
echo "Okay, we have the bundle, lets verify the checksum"
sum=$(md5sum /root/att/att.tar | awk '{print $1}')
if [[ $sum -eq "xxxxINSERT-CHECKSUM-HERExxxx" ]]
then
tar -xvf att.tar
else
clear
echo "Couldn't verify the MD5 Checksum, something went wrong" | tee /tmp/att.$time.log
sleep 0.5
exit 1;
fi
else
clear
echo "There was a problem getting the TAR bundle, exiting now ..." | tee /tmp/att.$time.log
sleep 0.5
exit 1;
fi
фигурные скобки предназначены для переменных расширений (необязательно во многих случаях). Круглые скобки предназначены для подстановки команд (и необязательно, если вам нужна эта функциональность). '$ foo' и' $ {foo} 'идентичны. Вам нужны только скобки, когда то, что следует за фигурными скобками, будет рассматриваться как часть имени переменной. Таким образом, '$ {foo} bar' является переменной-foo, тогда строка-строка, но' $ foobar' является переменной-foobar. –
Запустите свой код через http://www.shellcheck.net/ и исправьте то, о чем он жалуется. Однако этот снипп довольно хорош на этом фронте. Я бы лично не предложил использовать другой уровень отступов для 'then' и else', чем вы используете для' if' и 'fi', который просто будет запутанным, я думаю. Лично я также использую 'if [...]; а затем вместо того, чтобы поместить его на свою линию. –
не является поклонником вашего стиля отступов –