Você deve usar uma matriz em vez de uma string:
args=("a" "b c")
./2.sh "${args[@]}"
Quando a expansão da matriz é citada, cada elemento da matriz é expandido adequadamente.
Como posso armazenar um vetor argumento com um argumento contendo espaços em uma variável bash
?
Por exemplo, quero que 2.sh
imprima b c
#!/bin/bash
ARGV='a "b c"'
./2.sh $ARGV
#!/bin/bash
echo $2