Bash
使用 else 動態創建腳本的 Shell_exec
我正在嘗試使用 Shell_exec 來執行動態創建並儲存在 php 變數中的腳本。這是到目前為止的腳本。
{ curl -fsS --retry 3 https://hc-ping.com/same-unique-id-here ; \ echo "name.of.php.file.here STARTED for id # $state_id" ; \ php "/path/to/my.file.php" -i 2 -h prod 2>&1 | tee -a /path/to/log/files/my.file.log || \ curl -fsS --retry 3 https://hc-ping.com/same-unique-id-here/fail ; \ echo "name.of.php.file.here ENDED for id # $state_id with Exit Code $?" ; \ curl -fsS --retry 3 https://hc-ping.com/same-unique-id-here ; } 2>/dev/null >/dev/null &
我的第一個問題是我只想執行最後一行
curl -fsS --retry 3 https://hc-ping.com/same-unique-id-here
如果
php "/path/to/my.file.php" -i 2 -h prod 2>&1 | tee -a /path/to/log/files/my.file.log
是成功的。我如何修改腳本來做到這一點?
我的第二個問題,這是我在迴聲結束時列印退出程式碼的方式嗎?
echo "name.of.php.file.here ENDED for id # $state_id with Exit Code $?"
我希望在這個問題上有更多的互動。我最終使用一個變數來控制執行的內容。這是程式碼。
{ unset -v failcode ; failcode="0" ; curl -fsS --retry 3 https://hc-ping.com/same-unique-value ; \ echo "\n$(TZ="America/New_York" date +"%m-%d-%Y %H:%M:%S %Z") my.process.name.php STARTED for id # 2" ; \ php "/path/to/my/php/script.php" -i 2 -h lab || failcode="1" ; \ echo "\n$(TZ="America/New_York" date +"%m-%d-%Y %H:%M:%S %Z") my.process.name.php ENDED for id # 2 with Exit Code $failcode" ; \ [ "$failcode" == "1" ] && curl -fsS --retry 3 https://hc-ping.com/same-unique-value/fail ; \ [ "$failcode" == "1" ] && exit 1 ; \ curl -fsS --retry 3 https://hc-ping.com/same-unique-value ; } \ 2>&1 | tee -a /path/to/my/log/file.log 2>/dev/null >/dev/null &