У меня возникают проблемы с итерацией через массив, переданный в качестве аргумента функции в моем сценарии bash. Я думал, что ответ this question решит мою проблему, но у меня другая ошибка, и вопрос очень старый, поэтому я подумал, что должен задать новый вопрос.Итерация через массив, заданная как аргумент функции в сценарии оболочки
Я пытаюсь преобразовать этот код в функцию, так что я могу передавать различные параметры:
EX='WT'
declare -a SCN=('fq1'
'fq2'
'fq3')
for i in "${SCN[@]}"; do
echo $i
echo $EX'_'$i
done
Это печатает
fq1
WT_fq1
fq2
WT_fq2
fq3
WT_fq3
То, что я пробовал:
function myfx(){
echo $1
MYNOR=("${!2}")
for i in ${MYNOR[@]}; do
echo $i
echo $1'_'$i
done
}
myfx $EX $SCN[@]
К сожалению, все, что я получаю, это
WT
Он, похоже, не выполняет инструкции в цикле.
! вызывает замену истории в сценариях bash. –
@ArifBurhan Не в этой конструкции: '$ {! A}'. В нем это косвенная ссылка. Если первый символ параметра является восклицательным знаком (!), Он вводит уровень переменной косвенности.] (Https://www.gnu.org/software/bash/manual/bashref .html # Shell-Parameter-расширения) –