Bash不会将字符串拆分为超过第一个索引的数组

AFC*_*AFC 0 arrays string bash split

我有一个变量设置为我当前工作目录中的所有子目录,我这样做了

directories=` ls -d -- */`
Run Code Online (Sandbox Code Playgroud)

这将以下内容返回给我"d1/d2 /"并且我想通过空格将其拆分为数组,因此我运行以下代码,我在堆栈溢出时发现这似乎适用于其他人,但对我不起作用.代码是

IFS=' ' read -ra grArray <<< "$directories"
Run Code Online (Sandbox Code Playgroud)

现在这应该将我的字符串分成两个索引grArray [0]和grArray [1],分别应该是"d1 /"和"d2 /",但是当我尝试打印数组的两个索引时,我得到"d1 /"并且第二个数组出现为""

如果有人能够指出我在这里缺少的东西,我将非常感激.谢谢.

che*_*ner 5

不要这样使用ls; 只需使用glob直接设置数组:

directories=( */ )
Run Code Online (Sandbox Code Playgroud)

  • 是的,它确实.你可能正在做一些像`echo"$目录"`而不是正确的扩展`echo"$ {目录[@]}"`. (2认同)