我想计算给定目录中的所有*bin文件.最初我正在使用for-loop:
var=0
for i in *ls *bin
do
perform computations on $i ....
var+=1
done
echo $var
Run Code Online (Sandbox Code Playgroud)
但是,在某些目录中有太多文件导致错误: Argument list too long
因此,我正在尝试使用管道while-loop:
var=0
ls *.bin | while read i;
do
perform computations on $i
var+=1
done
echo $var
Run Code Online (Sandbox Code Playgroud)
现在的问题是使用管道子壳创建.因此,echo $var回报0.
我该如何处理这个问题?
原始代码:
#!/bin/bash
function entropyImpl {
if [[ -n "$1" ]]
then
if [[ -e "$1" ]]
then
echo "scale = 4; $(gzip -c ${1} | wc -c) / $(cat ${1} …Run Code Online (Sandbox Code Playgroud)