在循环内部,我有一个变量用于计算,使用bc另一个变量.但是,我得到的结果是完全错误的.我有32个文件,名称test0,test1等等.我的脚本如下:
for i in {0..31}; do
declare x$i=$(wc -l < test$i)
declare y$i=$(echo $x$i/10 | bc)
done
Run Code Online (Sandbox Code Playgroud)
对于变量x,我得到了好的结果,即每个都x$i存储了对应的行数test$i.然后我想简单地知道每个10%的多少x$i并将其存储在变量中y$i.而且,正如我上面所说,使用该脚本我得到了完全错误的结果.例如,对于x0= 155287510,我得到了y0= 20.
问题是,$x$i不是名为变量的值,x$i而是变量x和值的连接值i.
您可以将脚本转换为轻松使用Bash数组,但似乎您最好在Awk中执行此操作.
declare -a x
declare -a y
for i in {0..31}; do
x[$i]=$(wc -l < test$i)
y[$i]=$(echo "${x[$i]}"/10 | bc)
done
Run Code Online (Sandbox Code Playgroud)
如果你只想要计算结果,
wc -l test[0-9] test[12][0-9] test3[01] |
awk '{$1 /= 10 }1'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |