我在使用在线参考资料解决这个问题时遇到了麻烦,我需要将变量的强大功能作为一个参数,如下所示:
for i in `seq 0 4`
do
... --chunk_size=$((awk `BEGIN{print 10^$i}`))
done
但是这不起作用并且给我一个错误,我该怎么做?
答案 0 :(得分:5)
只需将Bash与**
for i in {0..4}
do
... --chunk_size="$(( 10 ** i ))"
done
示例:
$ for i in {0..4}; do echo "$(( 10 ** i ))"; done
1
10
100
1000
10000
答案 1 :(得分:3)
使用bc
:
for i in {0..4}; do bc -l <<<"10^$i"; done
1
10
100
1000
10000
使用awk
:
for i in {0..4}; do awk 'BEGIN{print 10^'$i'}'; done
1
10
100
1000
10000
所以你的代码看起来像这样:
for i in `seq 0 4`
do
... --chunk_size=$(bc -l <<< "10^$i")
done
或
for i in `seq 0 4`
do
... --chunk_size=$(awk 'BEGIN{print 10^'$i'}')
done
答案 2 :(得分:0)
使用-v
选项将bash
变量传递给awk
for i in `seq 0 4`
do
chunk_size=$(awk -v"i=$i" 'BEGIN{print 10^i}');
echo $chunk_size
done
输出:
1
10
100
1000
10000