iterarr "${myarr[@]}"
expandirá para iterarr '/dir1/file1.md' '/dir1/file2.md' 'README.md'
e, em seu loop, você fará referência apenas ao primeiro argumento com "$1"
. Em vez disso, use "$@"
para repetir todos os argumentos.
#!/bin/bash
function iterarr {
for item in "$@"
do
echo "$item"
done
}
myarr=(/dir1/file1.md /dir1/file2.md README.md)
iterarr "${myarr[@]}"
Se você quiser processar sinalizadores ou argumentos posicionais, coloque-os antes do array e manipule-os primeiro, deslocando-os quando concluído os removerá de "$@"
,
#!/bin/bash
function iterarr {
echo "first argument is : '$1'"
shift
for item in "$@"
do
echo "$item"
done
}
myarr=(/dir1/file1.md /dir1/file2.md README.md)
iterarr firstarg "${myarr[@]}"