最初の実行を待たずにコマンドを繰り返す

最初の実行を待たずにコマンドを繰り返す

私は主にコマンドラインを使用するためにこれを行うより良い方法が欲しいです。

while sleep 60; do 
  mysql -e 'show processlist'; 
done

これは次のより良いです:

while mysql -e 'show processlist'; do
  sleep 60;
done

...aを入力すると停止するctrl-cためです。ただし、最初のバージョンは最初に出力する前に1分待ちます。

について知っていますwatch。一般的に良いですが、すべての状況に適しているわけではありません。私は呪われずにstdoutで単純な出力を探しています。watchオプションがあればよさそうです--stdout

ここでは単純さが重要です。私はmysql文のエラー処理に興味がありません。独自のエラーを標準出力として報告できます。

ベストアンサー1

Ctrl+ はC通常の状況でループ全体を終了します。信号は全フォアグラウンドプロセスグループに送信されます。

あなたは探しているかもしれません

while mysql -e 'show processlist' && sleep 60; do :; done

一度終了するmysqlか、sleep失敗すると終了します。

おすすめ記事