【发布时间】:2017-05-26 07:38:16
【问题描述】:
我试图通过 for 循环读取命令的输出,但是以这样一种方式,循环变量将是一个数组。那可能吗? 这是我迄今为止一直在尝试的:
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"<
我能否以某种方式阻止 bash 将元素拆分成更小的部分?
【问题讨论】:
-
引号是文字数据,不是句法引号。您的代码中没有任何数组。