else を使用して動的にスクリプトを生成する Shell_exec

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

成功しました。このためにスクリプトをどのように変更しますか?

2番目の質問は、エコーの終わりに終了コードを印刷する方法ですか?

echo "name.of.php.file.here ENDED for id # $state_id with Exit Code $?"

ベストアンサー1

この問題についてより多くの相互作用があることを願っています。私は実行された内容を制御するために変数を使用しました。コードは次のとおりです。

{ 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 &

おすすめ記事