Вставьте свой код в shellcheck.net
function check_data () {
local pattern=$1 iterations=$2 tck=$3 tdi=$4 tdo=$5
...
}
Не используйте оба function
и ()
. Предпочитаю ()
.
check_data() {
local pattern=$1 iterations=$2 tck=$3 tdi=$4 tdo=$5
...
}
local
определяет переменные в функции как область действия этой функции. $1
и таковы значения позиционных параметров, которые получает функция.
pattern="0110011101001101101000010111001001"
Это просто простая строка.
pins=(2 3 4 17 27 22)
Это присвоило перечисленные целые числа в качестве значений в стандартном массиве. ${pins[0]
равно 2, ${pins[1]
равно 3 и т. Д. До ${pins[5]
из 22.
checkdatret=$(...)
Выполняет подоболочку и назначает из нее стандартный вывод $checkdatret
.
check_data val1 val2 val3 val4 val5
Выполняет функцию, присваивает оценочное значение каждому аргументу, поэтому -
check_data $pattern $((2*${#pattern})) ${pins[$tck]} ${pins[$tdi]} ${pins[$tdo]}
передает в 0110011101001101101000010111001001
(значение глобальной переменной $pattern
) в функцию значение $ 1 , который присваивается локальной переменной $pattern
.
$2
получает 68 для присвоения в iterations
, потому что ${#pattern}
- это длина $pattern
, которая равна 34; $(( ... ))
получает замену арифметической оценкой его содержания, которая является 2*${#pattern}
.
Я должен предположить, что tck
, tdi
и tdo
также имеют глобальные версии, поскольку локальные версии внутри функции здесь будут недоступны. Я также должен предположить, что у каждого есть значение в диапазоне 0-5, поскольку каждый используется в качестве индекса для ссылки на одно из шести значений в pins
.
Скорее всего, это поможет увидеть остальную часть кода и узнать, что именно вам нужно.
Экспортируйте структуру базы данных как сценарии создания и потенциально экспортируйте некоторую таблицу (ссылка) данные, как вставляют сценарии, затем проверьте тех, которые в управление исходным кодом.
Определенно НЕ пытайтесь поместить двоичные файлы базы данных (*.mdf) в управление исходным кодом.