cron
または、(AFAIK)を使用してスケジュールされたジョブ/スクリプトをat
実行することはできません。~へ特定の端末:(リダイレクトを介して)ジョブ/スクリプトの出力を特定の端末にのみ印刷できます。
代わりに、すでに開いている端末でコマンドを入力してから、を押すようにコマンドを実行するようにスケジュールしたいと思いますEnter。
これは可能ですか?
私はUbuntu 22.04を実行していますが、解決策がある場合は、特定のLinuxバージョンに依存していないことを願っています。
詳細:ログインまたは端末を開いた状態で、tty
ファイルの現在の内容を印刷するスクリプトを実行できます。したがって、端末は常に使用可能であると仮定する。
ジョブは、私がやっていることを無視して実行され、カーソルがあるところに出力を印刷する必要があります(私が視覚化しているものと重なってもかまいません)。ユーザーから任意の入力を受け取る必要はありません。テキスト出力のみです。
答え1
ここで提供されている答えの1つを使用できます。特定の時間/日付までの睡眠。ここに既存の質問に投稿されたソリューションを複製する理由はありません。
SEウェブサイトに投稿された質問を参照することもできます。次回特定の時間まで睡眠
したがって、背景にあるのか前景にあるのか、2つのオプションがあります。
展望:
[birdie@localhost tmp]$ cat > test.sh
echo 123
[birdie@localhost tmp]$ chmod +x test.sh
[birdie@localhost tmp]$ ( sleep 10; ./test.sh ) &
[1] 3689760
[birdie@localhost tmp]$
[birdie@localhost tmp]$
[birdie@localhost tmp]$
[birdie@localhost tmp]$ 123
[1]+ Done ( sleep 10; ./test.sh )
少し醜いが動作します。コンソールから何でも読みたい場合は、入力がないため一時停止します。
安全のため、stty -tostop
これらのコマンドを実行する前に実行してください。これは説明するなぜ必要ですか?
または背景:
nohup bash -c "sleep_command; command" &
特定のsleepコマンドが複数行ある場合は、それを使用してスクリプトまたは関数を作成できます。nohup
それ以外の場合は、プログラムが出力を試みるとすぐに一時停止するため、必要です。