gpt4 book ai didi

arrays - Bash 脚本和数组推送

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:49 24 4
gpt4 key购买 nike

我正在尝试制作一个脚本,它会找到一个文件,获取它们的目录名,然后去那里做一些事情。我在向数组添加元素时遇到问题,我希望谁成为我的目录名容器。

代码如下所示:

dirnames=()
while read -r line; do
echo "Looking for dirname "$line
dirname=$( dirname $(egrep -lir --include=pom.xml "<name>"$line"</name>" $application_dir))
dirnames+=($dirname)
done < $modules_file

echo "Acquired dirnames"
echo $dirnames

这就是答案:

Looking for dirname a
Looking for dirname b
Looking for dirname c
Acquired dirnames
/home/user/dev/workspace/a

我的“数组”中只有第一个目录。看起来每一次迭代都丢失了,我知道这些其他的目录名是因为我试图换行而找到的。

我在 bash 中阅读了很多关于数组的内容,但这种方法在任何地方都可以正常工作。

有什么建议吗?

最佳答案

展开整个数组的 Bash 语法是这样的:

echo ${dirnames[*]}

或者您可以访问单个元素。例如

echo ${dirnames[1]}

或者遍历数组:

for d in ${dirnames[*]}; do
echo $d
done

关于arrays - Bash 脚本和数组推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com