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