首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本在空间的循环分裂中将现有的数组元素追加到数组中(空格?)

Bash脚本在空间的循环分裂中将现有的数组元素追加到数组中(空格?)
EN

Stack Overflow用户
提问于 2022-05-15 22:10:37
回答 1查看 32关注 0票数 -2

请有人告诉我,为什么在追加到一个新数组时,它会将我的值分割成两个数组元素?

这是我的代码,输出如下..。

代码语言:javascript
复制
#!/bin/bash
IFS=$'\r\n' GLOBIGNORE='*' command eval  'toexec=($(cat /root/devops/commands.txt))'
#printf '%s\n' "${toexec[@]}"
dirlist=(`ls /root/devops/files/*`)
toCompress=()
toOutput=()
for fileList in ${dirlist[*]}
do
  toOutput+=($(basename ${fileList}));
  toCompress+=("${fileList}"$'\n');
done
newOut=()
printf '%s\n' "${toexec[@]}"
for (( i=0; i<${#toexec[@]}; i++ ));
do
    newval="${toexec[$i]},${toOutput[$i]}"$'\n';
    newOut+=($newval);
done
echo "======"
printf '%s\n' "${newOut[@]}"

下面是输出,由=====分隔,顶部是现有数组,底部是新数组。如您所见,它将每个元素放入两个元素中,在gzip和其option,filename之间的单个空间上拆分,例如gzip-1,a.txt

输出

代码语言:javascript
复制
gzip -1
gzip -9
======
gzip
-1,a.txt
gzip
-9,b.txt
...
==debug additional info==
--toexec < commands.txt--
gzip -1
gzip -9
=========================
--toCompress < ls--------
=========================
/root/devops/files/a.txt

/root/devops/files/b.txt

----toOutput-------------
a.txt
b.txt
=========================
----newOut---------------
gzip
-1,a.txt
gzip
-9,b.txt
=========================
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-15 22:14:01

因为该值不是双引号,如

代码语言:javascript
复制
newOut+=("$newval")

这将向数组中添加一个元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72252551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档