Estou com um pouco de dificuldade para descobrir como posso usar uma matriz bash para uma lista de argumentos. Até agora, o código abaixo não funciona .
O %s
abaixo é específico do Midnight Commander.
F=(%s); for i in "${F[@]}"; \
do G+=(--floppy_drive_$((n++))="\"$i\""); \
done; fs-uae ${G[*]}
O problema é com esta parte:
fs-uae ${G[*]}
No entanto, quando faço eco da última instrução e uso xargs, tudo funciona bem:
Open=FMAX=2; bash -c 'F=(%s); \
for i in "${F[@]}"; \
do G+=(--floppy_drive_$((n++))="\"$i\""); \
done; echo ${G[*]}' | xargs -n $((FMAX*2)) fs-uae
Também parece que eu tenho que usar bash -c
porque o MC reclama de erros de sintaxe.
Eu também uso isso com MESS, já que o emulador de mensagens precisa de argumentos como -cart1
, -cart2
, -flop1
, etc ....
Portanto, o código acima funciona . Eu posso selecionar dois arquivos com a tecla Insert no Midnight Commander, e apertar enter, e o fs-uae iniciará com os disquetes que eu selecionei. Eu só estou querendo saber se há uma maneira melhor de fazer isso sem xargs?
Eu ouvi pessoas dizerem que xargs é "inseguro". Quão preocupante isso é tecnicamente?