gpt4 book ai didi

linux - 脚本正在重新读取参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:05 26 4
gpt4 key购买 nike

当我为脚本提供参数:hi[123].txt 时,它将完全按照我的要求执行。但是,如果我指定通配符 ( hi*.txt ),它将重新读取一些文件。

我想知道如何修改这个脚本来解决那个愚蠢的问题:

#!/bin/sh

count="0"
total="0"
FILE="$1" #FILE specification is now $1 Specification..

for FILE in $@
do
#if the file is not readable then say so
if [ ! -r $FILE ];
then
echo "File: $FILE not readable"
exit 0
fi


# Start processing readable files
while read line
do

if [[ "$line" =~ ^Total ]];
then
tmp=$(echo $line | cut -d':' -f2)

total=$(expr $total + $tmp)

echo "$FILE (s) have a total of:$tmp "
count=$(expr $count + 1)

fi

done < $FILE
done
echo " Total is: $total"
echo " Number of files read is:$count"

最佳答案

这似乎是多余的:

FILE="$1"  #FILE specification is now $1 Specification..

for FILE in $@
...

初始分配会立即被覆盖。

总的来说,这似乎是一个更适合像 awk 或 perl 这样的行处理语言的任务。

按照这个 awk 脚本的思路考虑一些事情:

BEGIN{
TOTAL=0;
COUNT=0;
FS=':';
}
/^Total/{
TOTAL += $2;
COUNT++;
printf("File '%s' has a total of %i",FILENAME,TOTAL);
}
END{
printf("Total is %i",TOTAL);
printf("Number of files read is%i",COUNT);
}

关于linux - 脚本正在重新读取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com