Dolorosamente.
O que você pode fazer é usar o awk. O Awk, mesmo o BusyBox awk, pode fazer a maior parte do que um shell pode fazer, apenas com mais sobrecarga sintática. E tem matrizes associativas, como muitos daqueles que você deseja. Você pode chamar comandos externos por meio de system
. Há até um redirecionamento e funcionalidade de tubulação, embora seja mais limitado do que em um shell.
Se você quiser um script awk que não recebe nenhuma entrada, coloque todo o código em um bloco BEGIN
.
No seu caso, se eu entendi o que você quer fazer corretamente, você não precisa do awk. Você não precisa de cut
para processar a string TARGET
: use a expansão de parâmetro. BusyBox ash e hush tanto apoio ${VAR#PREFIX}
e amigos. Isso funciona facilmente, desde que seus caminhos não contenham espaços.
mountbind() {
for SOURCE in $SOURCES; do
TARGET=${TARGETS%% *}; TARGETS=${TARGETS#* }
su --mount-master mount -o bind "$SOURCE" "$TARGET" 1>>"$LOG"
done
}