Описание тега samsung-galaxy-mini
У меня (Баш) сценарий я хотел бы работать на двух разных компьютерах, один в OpenBSD с программой и SHA256
, другой Ubuntu с sha256sum
. Какой лучший/стандартная практика позволяют скрипту для обработки обоих случаях?
Обратите внимание, что для SHA256 и
против sha256sum
, другие параметры в программу и не нужно было менять, но на другой выбор программы, такие как утилита wget
и завиток
, другие параметры тоже меняются (например через wget
и завиток -о
). Поэтому, лучшим ответом будет разрешить различными параметрами командной строки, а также в зависимости от программы.
Один из способов отладки программы состоит в использовании переменной, которая меняется в зависимости от статус выхода из команды
, хэш
, или типа
, как в этой, так вопрос
например
SHA_PROGRAM=SHA256 и
команда -в "$SHA_PROGRAM"
# Если статус выхода из команды отлично от нуля, попробовать что-то другое
если [ "$?" -не "0" ]; затем
команда -в "sha256sum"
если [ "$?" -не "0" ]; затем
е "эта программа требует программа и SHA256 хеширования, пожалуйста, установите один\П" 1>&2
выход 1
еще
SHA_PROGRAM=sha256sum
интернет
интернет
$SHA_PROGRAM $МОЙ_ФАЙЛ
Но, что путь кажется немного verbose для меня, не говоря уже о вложенных if-постановка вопроса.
Это может быть обобщенная немного с помощью массива возможных команд:
объявить-POSSIBLE_COMMANDS=("SHA256 и" "sha256sum")
SHA_PROGRAM=""
за $opt в "${POSSIBLE_COMMANDS[@]}"
делать
команда -в "$опт"
# если код завершения команды равен нулю, установить переменную команду и выйти из цикла
если [ "$?" -эквалайзер "0" ]; затем
SHA_PROGRAM=$ОПТ
перерыв
интернет
сделано
# если переменная остается пустой, выход с ошибкой
если [ -з "$SHA_PROGRAM" ]; затем
е "эта программа требует программа и SHA256. Прерывание\П" 1>&2
выход 1
интернет
$SHA_PROGRAM $MY_FILE
Что бы работать тоже верю, но я надеюсь получить совет от более опытных, лучше Баш программист, в случае, если я пропускаю некоторые лучшее решение (возможно, умное использование ||
оператора?).