web-dev-qa-db-ja.com

bashターミナルで新しい行を入力/開始する方法は?

いくつかのサンプルのbash forループが例では複数の行に分散していることに気付きました

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done

(例: http://www.cyberciti.biz/faq/bash-for-loop/ )bashターミナルに改行を入力するにはどうすればよいですか(PuTTYを使用しています)。行の最後でEnterキーを押すと、システムがそれを実行します。

11
giorgio79

押すと Enter の終わりに:

for VARIABLE in file1 file2 file3

forループが終了していないため、シェルは何も実行できません。そのため、代わりに、終了doneを入力するまで、別のプロンプト$PS2プロンプト(通常は>)を出力します。

ただし、>が表示された後、最初の行を編集するために戻ることはできません。

または、入力する代わりに Enter、入力できます Ctrl-VCtrl-J。このようにして、現在のバッファがacceptedでなくても改行文字(別名^J)が入力され、後で最初の行の編集に戻ることができます。

zshでは、 Alt-Enter または EscEnter 現在のバッファを受け入れずに改行文字を挿入します。 bashで同じ動作をするために、~/.inputrcに追加できます:

"\e\C-m": "\026\n"

\026^V文字です)。

28