Ваша первая проблема:
let TESTCASE="UNSET_INTEGER_VARIABLE_NAME"
пусть
обрабатывает математику. Присваивания, сделанные в операторе let
, будут назначать целые значения. В контексте арифметики оболочки все значения FIRST
, SECOND
, THIRD
, которые вы присваиваете $ TESTCASE
, равны нулю, потому что они ' re считается неустановленными именами переменных, а не буквальными значениями.
unset FIRST
let TESTCASE=FIRST
echo "$TESTCASE"
0
... или ...
FIRST=10
let TESTCASE=FIRST
echo "$TESTCASE"
10
Таким образом, каждое выполняемое вами присваивание присваивает одно и то же значение $ TESTCASE
, за исключением переменных с именами FIRST
, SECOND
, ТРЕТИЙ
или INITIAL
экспортируются
в его среду перед запуском.
Чтобы присвоить строку FIRST
переменной оболочки $ TESTCASE
, вы должны сделать:
TESTCASE=FIRST
echo "$TESTCASE"
FIRST
Вы также можете рассмотреть case
:
logonerror(){
case $TESTCASE in
(1) : logging commands relevant to 1st test case
;;
(2) : logging commands relevant to 2nd test case
;;
(3) : logging commands relevant to 3rd test case
;;
esac; : logging commands relevant to all test cases
}
testing()
case $TESTCASE in
(1) : do some testing
;;
(2) : do some testing
;;
(3) : do some testing
;;
esac
trap cleanup EXIT
{ trap 'logonerror >&2; exit' PIPE
for TESTCASE in 1 2 3; do testing; done >&2;:
}|{ read -t 7200; kill -PIPE -0; }
iommu=soft
указывает ядру использовать программную реализацию для перераспределения памяти для приложений, которые не могут читать больше 4 ГБ.
Документация ядра по этим параметрам находится здесь:https://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt
Предпочтительнее решение, которое удовлетворяет вашим ожиданиям в отношении производительности, температуры системы, времени работы от батареи и т. д. и т. п. Если iommu=soft
обеспечивает удовлетворительную производительность, температуру и время работы от батареи, я бы сказал, что следует остановиться на этом.