文章目錄
- 1. 腳本更新
- 2. 執行測試
- 3. 腳本關鍵詞簡述
- 補充案例
上一篇:
shell腳本觸發java程式支援傳參補跑 +crontab定時器_02
1. 腳本更新
cd /app/ly
#!/bin/bash
fdate=$(date +%Y%m%d%H%M%S)
flog='/app/ly/logs/shellrun-'
elog='/app/ly/logs/errors-'
fname=$flog$fdate'.log'
ename=$elog$fdate'.log'
nohup /app/jdk1.8.0_202/bin/java -cp "./ly.war/WEB-INF/classes" com.gblfy.shell.MainDeal $1 <<EOF > "$fname" 2>&1
EOF
if grep -i "Login failed" "$fname" > /dev/null
then
echo "ERROR: Login failed" >> "$ename"
fi
if grep -i "Not connected" "$fname" > /dev/null
then
echo "ERROR: Cannot connect to the destination" >> "$ename"
fi
if grep -i "No such file" "$fname" > /dev/null
then
echo "ERROR: Cannot change directory. No such file or directory." >> "$ename"
fi
if grep -i "No such directory" "$fname" > /dev/null
then
echo "ERROR: Cannot change remote directory. No such file or directory." >> "$ename"
fi
if grep -i "File or Directory does not exist" "$fname" > /dev/null
then
echo "ERROR: Cannot transfer. File or Directory does not exist" >> "$ename"
fi
2. 執行測試
不傳參數
[root@localhost ly]# ./lyshell2.sh
[root@localhost ly]# cat logs/shellrun-20201227132209.log
沒有接收到參數
開始擷取目前日期:2020-12-27
[root@localhost ly]#
傳參數
[root@localhost ly]# ./lyshell2.sh 2020-12-26
[root@localhost ly]# cat logs/shellrun-20201227132529.log
開始補跑: 2020-12-26這天的資料
[root@localhost ly]#
3. 腳本關鍵詞簡述
<< EOF
...
EOF
其中的"..."表示使用者輸入内容。
說明:EOF隻是一個标示符,可以用其它非關鍵字元或字元串來代替,例如:
<< abc
.....
abc
補充案例
#!/bin/bash
#Filename:do.sh
su - oracle -c "
export ORACLE_SID=orcl
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit;
EOF"
sleep 5
su