私はbashスクリプトを実行しており、スクリプト処理を続行するために時々ユーザー入力を受けたいと思います。ターミナル出力を維持し、アプリケーションを対話的に(キーストロークに応答しながら)スクリプト出力をファイルにリダイレクトできますか?
答え1
tee
この目的のために設計されています。私はスクリプトを書いたsc
:
##!/bin/bash
while [[ $x != "X" ]] ; do
printf "? "
read x
echo "User wrote: $x"
done
次に、次のように実行します。
$ ./sc | tee f
? The first line
User wrote: The first line
? another line
User wrote: another line
? X
User wrote: X
$ cat f
? User wrote: The first line
? User wrote: another line
? User wrote: X
tee
かなり粗くて準備ができていますが、ファイルを閉じる方法を示しています。
答え2
以下のコマンドを実行すると、script
ファイルの完全な出力がキャプチャされます。他のオプションtypescript
を見るman script
script
your_command...
キャプチャセッションを終了するには、Ctrl / Dを使用してください。