首页 > 解决方案 > for循环追加变量bash 6

问题描述

我有这个脚本,我有多个结果。

如何将多个结果输出到一个变量中?

示例:第一个循环的结果是英语,第二个循环是意大利语。

我需要变量中的最终结果:英语意大利语

for i in $(ls -l $1/$2/);do
if [[ $i =~ .*\.idx$ ]];then
    tr -d '\r' < $1/$2/$i > $1/$2/newfile
    rm -f $1/$2/$i
    mv $1/$2/newfile $1/$2/$i
    results=$(cat $1/$2/$i |awk '/^# alt:/ { a[$3] } END { for (l in a) { printf("%s%s", c, l); c = " " } printf("\n") }')
    echo "Results for $i : $results"
fi
done

标签: bash

解决方案


如果使用以下语法,则可以在单个变量中获取所有结果:

variable=$(command)

您可能会发现将代码放入函数中然后像这样调用它很有用:

function command() {

# your code from above 

}

results=$( command "$@" )

推荐阅读