シェルスクリプトのエクスポートファイル

シェルスクリプトのエクスポートファイル

ファイルにエクスポートする必要がある出力があります。その後、このファイルを呼び出してその中にあるスクリプトを実行する必要があります。もう1つの条件は、15分後に最後のクエリまたはコマンドを実行することです。以下のコードをご覧ください。

#SORT RESULT IN DESCENDING ORDER. 
#FORMAT SYNTAX FOR BACKUP DELETION
sort -r ${TEMPRESULT2} | sed -e "s/^/DELETE BACKUP /g" | sed -e "s/$/ NOWARNING/g"

出力:

DELETE BACKUP (backupid) NOWARNING

DELETE BACKUP (backupid) NOWARNING

[一時停止後15分後に実行]

DELETE BACKUP (finalbackupid) NOWARNING

最後のバックアップIDは、他のすべてのバックアップIDが完了した後にのみ実行できます。

ベストアンサー1

2つの異なる時間に実行される2つの異なるコマンドシーケンスがあります。したがって、最も論理的な解決策は、これらのコマンドを2つの異なるファイルに配置することです。

TEMPRESULT3=$(sort -r ${TEMPRESULT2} | sed -e "s/^/DELETE BACKUP /g" | sed -e "s/$/ NOWARNING/g")

# Put all lines except the last one in a first script:
echo "$TEMPRESULT3" | head -n -1 >"path/to/first-script"

# Put the last line in a second script:
echo "$TEMPRESULT3" | tail -n 1 >"path/to/second-script"

私が知っている限り、負の行番号はGNU拡張でありhead、使用できない場合は実行する前に行数を数える必要があります(total=$(echo "$TEMPRESULT3" | wc -l); all_but_least=$(expr $total - 1)その後、cnaを最初のコマンド$all_but_leastの引数として渡す必要があります)。head-1

次に、必要な方法でこのスクリプトを呼び出すだけです。たとえば、Benjamin B.が提案した構文を使用すると、mysql次のようになります。

mysql < "path/to/first-script"
# 800 s. = 15 m.
sleep 800
mysql < "path/to/second-script"

おすすめ記事