Я пытаюсь сделать вывод команды прочитанным циклом for, но таким образом, что переменная цикла будет массивом. это возможно? это то, что я пытался до сих пор:bash create for loop с переменной массива
function samplevals() {
echo '"aa bb"'
echo '"cc dd"'
echo '"ee ff" "gg hh"'
}
samplevar='"aa bb"
"cc dd"
"ee ff" "gg hh"'
echo call function samplevals:
for x in `samplevals `; do echo ">$x<"; done
echo read variable samplevar:
echo $samplevar
for x in $samplevar; do echo ">$x<"; done
echo process output of 'echo samplevar:'
for x in `echo $samplevar`; do echo ">$x<"; done
echo "the thing with set"
for x in $samplevar; do set -- $x ; echo "\$1=>$1<,\$2=>$2<"; done
но выход всегда одинаков:
>"aa<
>bb"<
>"cc<
>dd"<
>"ee<
>ff"<
>"gg<
>hh"<
Могу ли я каким-то образом предотвратить Баш от разделения элементов на более мелкие куски?
это то, что я пытался до сих пор: http://www.tutorialspoint.com/execute_bash_online.php?PID=0Bw_CjBb95KQMa295ZV84dkg4ME0
Кавычки - это буквальные данные, а не синтаксические кавычки. В вашем коде нет никаких массивов. – chepner