如何在 cut 命令中给出循环变量 i?

如何在 cut 命令中给出循环变量 i?
while [ "$i" -lt "$b" ]
        do
          export file=$(echo $a | cut -f$i -d' ')
          echo $file
          export i=`echo $i + 1`
        done

我的变量"a"ab cd ef等等。i每次循环时都需要从第一个单词到最后一个单词取一个单词。

这应该基于价值来完成i

例如:什么时候i=1 i应该获取第一个单词,什么时候i=2 i应该获取第二个单词等等。

有人能帮帮我吗 ?

答案1

您不需要导出每个变量,只有当您生成需要在其环境中查找变量的外部进程时才需要这样做。

bash 使用方括号来评估测试表达式,使用圆括号来评估算术表达式:

while (( i < b ))
do
    file=$(cut -f$i -d' ' <<< "$a")
    echo $file
    (( i += 1 ))
done

另外,你不需要一直调用cut,你可以将“$a”的单词存储在数组中:

words=( $a )    # the variable is specifically *not* quoted here
for file in "${words[@]}"; do
    do_something_with $file
done

相关内容