キーを押すまで各繰り返しの後に一時停止するforループをどのように実行できますか?私はFILE1、FILE2、FILE3の行番号を印刷するが、唯一のキーを押した後、それぞれを継続したい場合 は、たとえば、:Linux - キーが押されるまでループを一時停止する
for f in dir/file? ; do wc -l $f ; pause until key is pressed ; done
謝罪これは些細であれば、私はコーディングに新たなんです。
キーを押すまで各繰り返しの後に一時停止するforループをどのように実行できますか?私はFILE1、FILE2、FILE3の行番号を印刷するが、唯一のキーを押した後、それぞれを継続したい場合 は、たとえば、:Linux - キーが押されるまでループを一時停止する
for f in dir/file? ; do wc -l $f ; pause until key is pressed ; done
謝罪これは些細であれば、私はコーディングに新たなんです。
ユーザー
read -p "Press key to continue.. " -n1 -s
man read
ページから使用されるオプションから単一の文字(-n1
)入力を待つread
コマンドを使用して、
-n nchars return after reading NCHARS characters rather than waiting
for a newline, but honor a delimiter if fewer than NCHARS
characters are read before the delimiter
-s do not echo input coming from a terminal
-p prompt output the string PROMPT without a trailing newline before
attempting to read
@Stewart:試してみてください:
cat script.ksh
trap "echo exiting...; exit" SIGHUP SIGINT SIGTERM
for file in /tmp/*
do
wc -l $file
echo "Waiting for key hit.."
read var
if [[ -n $var ]]
then
continue
fi
done
このスクリプトは継続的に実行されますシステムがそれを殺すためのシグナルを得るまで、(例えば、 - > cntl + cなど)これが役に立ったら教えてください。ロジックは単純なもので、ユーザーの中断を処理するためのスクリプトの最初の行を作成し、forループを作成してすべてのファイルを含むディレクトリを探します(必要に応じて変更することもできます)。現在のファイルのwc -lを表示します。次に、ユーザーが何かを入力した場合、何回か繰り返すように選択を入力するようにユーザーに依頼します。
これは私が見つけた唯一の答えはPOSIXです。まもなくテスト。 – zaTricky
@zaTricky、どういうことか教えてください。 – RavinderSingh13
作品100% - 唯一の欠点は、あなたが* Enter *を押すことです。私が見つけた他のすべての "解決策"はPOSIX以外のフラグ(-p、-s、-nなど)を使用します。 – zaTricky