在此脚本中,我必须:
1)打印当前日期
2)打印上次修改的日志文件的日期
3)如果当前日期等于log1和log2 mod。日期,log1,log2的计数行
4)如果当前日期等于log1和log2 mod。日期,求和它们的行(wc
log1 + wc
log2)
5)如果log1和log2的总和大于100,
exit 2
6)如果当前日期和上次修改日期。 log1和log2的值不同,请将log1的行数设置为0,将log2的行数设置为0。
到目前为止,这是我的脚本。如果要对其进行测试,请将此.sh脚本保存在您的主目录中,然后在主目录中创建一个非空的log_1.log
文件和一个非空的log_2.log
文件。
第29行出现语法错误。
#!/bin/bash
#current date
printf "Current date:\n"
current_date=$(date +'%d %B' | cut -c1-7) #
echo $current_date #
###########################################################
printf "Last modify date of log 1:\n"
date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5'})
echo $date_log_1
printf "Last modify date of log 2:\n"
date_log_2=$(ls -oF log_2.log | gawk '{print $6 " ", $5'})
echo $date_log_2
if [[ $current_date == $date_log_1 ]]; then
count_line1=$(wc -l log_1.log)
printf "log 1 lines are \n $count_line1 \n"
# sum count lines
sum=$(("$count_line1 + $count_line2"))
fi #end
if [[ $current_date == $date_log_2 ]]; then
count_line2=$(wc -l ciao2.log)
printf "log 2 lines are \n $count_line2 \n"
sum=$(($count_line1 + $count_line2))
fi
# is sum > 100?
if [[ sum > 100 ]];
then
exit 2;
fi
###########################################################
if [[ $current_date != $date_log_1 ]]; then
# set line count at 0
echo -n "" > log_1.log # set word count at 0
fi
if [[ $current_date != $date_log_2 ]]; then
# set line count at 0
echo -n "" > log_2.log # set word count at 0
fi
答案 0 :(得分:0)
您可能要修复此行
date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5'})
到
date_log_1=$(ls -oF log_1.log | gawk '{print $6" ", $5}')
(下面还有一条类似的线。)