not
通知()を表示する機能があります。したがって、これを使用してコマンドが完了したタイミングを表示できます。
sleep 5; not
しかし、時には;not
OS Xの端末で(数年前)、現在のコマンドが実行されている間に2番目のコマンドを入力することができました。第2の命令は、第1の命令が完了した後に実行される。
だから入力sleep 5
Enterしてすぐに入力しますnot
Enter。sleep
終了後に実行されますnot
。
しかし、Linuxでの私の経験によると、これは起こりません。終了後にsleep
コマンドラインが表示されますが、not
登録されEnterません。 Terminator、Konsole、tty をテストしました。
この動作は端末エミュレータによって異なりますか?それでは、あなたが望む方法で動作するものはありますか?または、私が選択した端末(ターミネーター)でこれを行う方法はありますか?
他のシェルでテスト
動作しません。つまり、2番目のコマンドは登録されていません。
bash
bash --norc
bash --norc --noprofile
sh
動作します。つまり、2番目の命令レジスタは次のようになります。
bash --norc --noprofile --noediting
zsh
~/.inputrc
デフォルトのシェルからその行を選択的に削除し、再bash
テストしました。問題を次の行に追跡しました。削除されると、2番目のコマンドが期待どおりに登録されます。
Control-j: menu-complete
Ctrl奇妙なことは、+をバインドしようとするとi問題がないということです。この項目が2番目のコマンドが登録されるのを防ぐ理由は何Ctrlですかj?menu-complete
ベストアンサー1
bashを使用していると仮定すると、^ Z(Ctrl + Zなど)を押してプロセスを停止し、背景に移動し、別のbashプロンプトを表示します。 input
fg; not
、前者は停止したプロセスを継続し、完了すると返されます。
または、待機したいプログラムのプロセスID(2342など)を確認してください。新しいShouldに次のように入力します。
until kill -0 2342; do sleep 1; done; not
これは毎秒確認されます。