我有很长的一行作为 git 命令的输出:a=$(git submodule foreach git status)
. 它看起来像这样: a = "Entering ' Dir1/Subdir ' On branch master 你的分支是最新的 'origin/master'。没有提交,工作树清理进入 ' Dir2 ' HEAD 在 xxxxxx 分离,没有提交,工作tree clean 在分支 master 上输入' Dir3 ' 你的分支是最新的'origin/master'。没有提交,工作树清理在分支 master 上输入' Dir4 ' 你的分支是最新的'origin/master'。没有承诺,工作树干净”
我想把它分成一个数组:
ARR[0] = "' Dir1/Subdir ' 在分支 master ..."
ARR[1] = "' Dir2 ' HEAD 在 ..."
等等
为此,我尝试用“Entering”代替符号(我尝试过# $ % & \t ...),a=${a//Entering /$}
它工作正常。然后,我尝试使用 IFS 并读取将其分成一个数组:IFS='$' read -ra ARR <<< "$a"
这是我面临问题的地方。
我得到的输出echo ${ARR[@]}
是“Dir1/Subdir1”,所以我认为读取受到空格或 git 输出的影响,但我不明白发生了什么以及如何修复它。你能给我一些建议吗?
谢谢你。