bash:将字符串读入保留空格的数组bash

bash:将字符串读入保留空格的数组bash,bash,shell,unix,scripting,solaris,Bash,Shell,Unix,Scripting,Solaris,我有串“你好” 我想把这个字符串放入一个数组中,如下所示。但我想保留空间。有什么办法吗 a[0] a[1] a[2] 3 4 5 6 .... should have h i <space> h o w <space> .... and so on. a[0]a[1]a[2]3 4 5 6。。。。应该有 我好。。。。等等 这真的很难看,也许有人能想出一些不需要评估的东西 这真的很难看,也许有人可以想出一些没有eva

我有串“你好” 我想把这个字符串放入一个数组中,如下所示。但我想保留空间。有什么办法吗

    a[0] a[1] a[2]    3   4 5   6     .... should have
     h    i   <space> h   o w <space> .... and so on.
a[0]a[1]a[2]3 4 5 6。。。。应该有
我好。。。。等等
这真的很难看,也许有人能想出一些不需要评估的东西


这真的很难看,也许有人可以想出一些没有
eval
的东西,

一种方法,当然会有更好的解决方案,但这似乎对我有用:

unset arr; IFS=; for c in $(sed 's/./&\n/g' <<<"hi how are you"); do arr+=("$c"); done; echo "${arr[@]}"

一种方法是,肯定会有更好的解决方案,但这似乎对我有效:

unset arr; IFS=; for c in $(sed 's/./&\n/g' <<<"hi how are you"); do arr+=("$c"); done; echo "${arr[@]}"

可能不太快,但可以避免使用
sed

z=()
while read -n 1 x; do
    z+=( "$x" )
done <<<"hi how are you"
z=()
读取时-n1x;做
z+=(“$x”)

完成可能不快,但避免了使用
sed

z=()
while read -n 1 x; do
    z+=( "$x" )
done <<<"hi how are you"
z=()
读取时-n1x;做
z+=(“$x”)

做了可能不是重复的,大多数答案不能处理空格…确切地说。我尽可能多地搜索,但找不到如何处理空格。;可能不是重复的,大多数答案不能处理空格…完全正确。我尽可能多地搜索,但找不到如何处理空格。;您介意解释sed部分吗?请单独运行该部分:
echo“您好”| sed“s/\(.\)/'\1'/g“
。将每个字符替换为引用的一个愚蠢的问题!应该这么做的!谢谢你,卡罗利!真管用!干杯您介意解释sed部分吗?请单独运行该部分:
echo“您好”| sed“s/\(.\)/'\1'/g“
。将每个字符替换为引用的一个愚蠢的问题!应该这么做的!谢谢你,卡罗利!真管用!干杯谢谢你,比雷!我想我被宠坏了!谢谢你的回答,先生!谢谢你,你的
IFS='
技巧帮助我解决了我自己的问题(在文件名数组中保留空格)!谢谢你,比雷!我想我被宠坏了!谢谢你的回答,先生!谢谢你,你的
IFS='
技巧帮助我解决了我自己的问题(在文件名数组中保留空格)!