Bash

使用 else 動態創建腳本的 Shell_exec

  • September 10, 2018

我正在嘗試使用 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 &

引用自:https://unix.stackexchange.com/questions/464261