我正在學習linux腳本,我排練了現有的主題,請大家幫忙。 幫助需要避免在日期時間格式的單引號構造日期時間過去2分鐘,如 - '-e 2015-02-09 11:56. * INFO -e 2015-02-09 11:55. *信息'Linux腳本 - 在日期時間壓制單引號
當我使用像$X
這樣的變量中的字符串時,它會轉換like-:-e 2015-02-09 '11:56. * INFO'-e 2015-02-09 '11:55. * INFO' 與時間值之前的單引號
我需要一些幫助,我怎麼能代替$x
爲: -e「2015年2月9日11:56,* INFO」 -e「2015年2月9日11:55 。* INFO'
以下是我的示例腳本:
#!/usr/bin/ksh -x
TEST_HOME=/home/
TEST_HOME_FILE=/home/tempop.txt
LOG_FILE=/home/testlogMin.txt
echo "test before"
grepPattern=''
cnt=1
finalGrepPattern=''
timeInMin=2
while [[ $cnt -le $timeInMin ]]; do
echo $cnt
date_var=`date --date="$cnt minutes ago" "+%Y-%m-%d %H:%M`
#grepPattern=$grepPattern" -e "`date --date="$cnt minutes ago" "+%Y-%m-%d %H:%M"`".*INFO"
#grepPattern=$grepPattern" -e "`date --date="$cnt minutes ago" "+%Y-%m-%d %H:%M"`".*INFO"
grepPattern="${grepPattern} -e ${date_var}"".*INFO"
#grepPattern=$grepPattern" -e "`date --date="$cnt minutes ago" "+%Y-%m-%d %H:%M"`".*ERROR"
#grepPattern=$grepPattern" -e "`date --date="$cnt minutes ago" "+%Y-%m-%d %H:%M"`".*WARNING"
#grepPattern=$grepPattern" -e \""`date --date="$cnt minutes ago" "+%Y-%m-%d %H:%M"`".*INFO"\" # I changed this line
((cnt++))
done
finalGrepPattern=$grepPattern
echo ">>>>>>>>>>>>>>>>>>"
echo "$finalGrepPattern"
echo "*******"
echo $finalGrepPattern
echo "<<<<<<<<<<<<<<<<<"
if [ -s $LOG_FILE ]; then
echo "File $LOG_FILE exists and its non-zero in size. Proceeding with greping last 10 mins file contents."
echo "$LOG_FILE"
egrep $finalGrepPattern $LOG_FILE > $TEST_HOME/tempop.txt
chmod 755 $TEST_HOME/tempop.txt
echo "after egrep"
if [ -s $TEST_HOME_FILE ]; then
echo "$TEST_HOME_FILE is not empty. Sending the file to XXXX server."
fi
else
echo "Did not find LOG_FILE GE ZERO"
fi
exit;
下面是最近運行的輸出日誌:
[[email protected] ~]$ ./test
+ TEST_HOME=/home/XXXXX
+ TEST_HOME_FILE=/home/XXXXX/tempop.txt
+ LOG_FILE=/home/XXXXX/testlogMin.txt
+ echo 'test before'
test before
+ grepPattern=''
+ cnt=1
+ finalGrepPattern=''
+ timeInMin=2
+ [[ 1 -le 2 ]]
+ echo 1
1
+ date '--date=1 minutes ago' '+%Y-%m-%d %H:%M'
+ date_var='2015-02-09 19:52'
+ grepPattern=' -e 2015-02-09 19:52.*INFO'
+ ((cnt++))
+ [[ 2 -le 2 ]]
+ echo 2
2
+ date '--date=2 minutes ago' '+%Y-%m-%d %H:%M'
+ date_var='2015-02-09 19:51'
+ grepPattern=' -e 2015-02-09 19:52.*INFO -e 2015-02-09 19:51.*INFO'
+ ((cnt++))
+ [[ 3 -le 2 ]]
+ finalGrepPattern=' -e 2015-02-09 19:52.*INFO -e 2015-02-09 19:51.*INFO'
+ echo '>>>>>>>>>>>>>>>>>>'
>>>>>>>>>>>>>>>>>>
+ echo ' -e 2015-02-09 19:52.*INFO -e 2015-02-09 19:51.*INFO'
-e 2015-02-09 19:52.*INFO -e 2015-02-09 19:51.*INFO
+ echo '*******'
*******
+ echo -e 2015-02-09 '19:52.*INFO' -e 2015-02-09 '19:51.*INFO'
2015-02-09 19:52.*INFO -e 2015-02-09 19:51.*INFO
+ echo '<<<<<<<<<<<<<<<<<'
<<<<<<<<<<<<<<<<<
+ [ -s /home/XXXXX/testlogMin.txt ]
+ echo 'File /home/XXXXX/testlogMin.txt exists and its non-zero in size. Proceeding with greping last 10 mins file contents.'
File /home/XXXXX/testlogMin.txt exists and its non-zero in size. Proceeding with greping last 10 mins file contents.
+ echo /home/XXXXX/testlogMin.txt
/home/XXXXX/testlogMin.txt
+ egrep -e 2015-02-09 '19:52.*INFO' -e 2015-02-09 '19:51.*INFO' /home/XXXXX/testlogMin.txt
+ 1> /home/XXXXX/tempop.txt
egrep: 19:52.*INFO: No such file or directory
egrep: 19:51.*INFO: No such file or directory
+ chmod 755 /home/XXXXX/tempop.txt
+ echo 'after egrep'
after egrep
+ [ -s /home/XXXXX/tempop.txt ]
+ exit