Этот скрипт запускает запрос для получения списка дат и запускает два других запроса для этих дат. Затем сравнивает, какой из них является меньшим из чисел, и умножает его на 2. Затем записывает в файл и суммирует их. Пожалуйста, предложите улучшения. Также проверяет 0 номеров.Как оптимизировать следующий скрипт
#!/bin/bash
1>output.txt
today=$(date +"%Y%m%d")
FirstOfTheMonth=$(date -d "--$(($(date +%-d)-1)) day" `enter code here`+"%Y%m%d")
echo "XXXX activity report on daily and cumulative monthly `enter code here`basis "
#query that outputs dates to a file
SQL query > list
#for each date I run 2 queries
for i in `cat list`;do
a1=SQL query;
b1=SQL query;
# I compare to find out which one is the smaller number and `enter code here`multiply it by 2
buy=${a1#-}
sell=${b1#-}
echo "XXX report for $yesterday month = $i "
echo "Buy $buy"
echo "Sell $sell"
if [ "$buy" -lt "$sell" ];
then DayNumber=$[buy * 2];
else DayNumber=$[sell * 2];
fi;
#I write all the numbers to a file since I have to sum them
MonthNumber=`awk '{ sum += $1 } END { print sum }' `enter `enter code here`code here`DayNumber$i`
echo "Day Number $DayNumber"
echo "$DayNumber$i $MonthNumber$1 $yesterday" >> DayNumber$i
echo "Day Number since $FirstOfTheMonth $MonthNumber$1"
echo ---------------------------------------------------------------------------------------
done
/usr/bin/mail -s "XXXX report $today" [email protected] < `enter code here`output.txt
Если код работает так, как вы ожидаете, и вы просто хотите улучшить его, опубликуйте его на [codereview.se]. –
Кроме того, если вы говорите об оптимизации производительности, мы хотим, чтобы вы (1) конкретно указали, что вы хотите оптимизировать, и удалите весь код, не имеющий отношения к этой вещи; и (2) укажите, какую версию bash вы планируете (для математики даты большие усовершенствования самого интерпретатора bash, потенциально позволяющие вам прекратить использовать дату GNU в пользу использования встроенных функций), были выпущены в 4.2). –
Кроме того, все подстановки «введите код здесь» или «SQL-запрос» означают, что то, что вы публикуете здесь, не является допустимым MCVE, поскольку оно не является полным или проверяемым; см. http://stackoverflow.com/help/mcve. –