web-dev-qa-db-ja.com

端末への1回の要求で(ファイルを使用せずに)複数のコマンドを次々に実行する方法は?

(1)終了行で区切られた入力コマンドを使用してファイルを準備し、(2)実行可能にし、(3)ファイルシステムマネージャーまたは端末から実行できます。

しかし、これは繰り返し可能でなく、毎回他のコマンドのセットにとってはばかげています。

代わりに、これらのコマンドを1つの要求で端末に入力できますか?

端末のエンドライン文字がわかりません-Ctrlキー、Shiftキー、またはAltキーを押しながらAltキーを押しても機能しません。

21
Esamo

&&または;でコマンドを分離できます。

  • &&は、前のコマンドがステータス0(成功)で終了した場合にのみ次のコマンドを実行します。

    command1 && command2 && command3
    
  • ;は、前のコマンドがゼロ以外のステータスで終了した場合でも、すべてのコマンドを実行します。

    command1; command2; command3
    

必要に応じてこれらのセパレータを組み合わせることができます。

23
MrVaykadji

1つのリクエストで各コマンドを独自の行に入力する場合は、次の方法を使用できます。

  • リクエストを開始(最初の行)if :; then(これが意味する場合:trueなら、do) Enter; >でプロンプトが変更され、何も実行されません。

  • コマンドを入力します。各コマンドの後に Enter

  • fi(上記のif条件の終わり)でリクエストを終了し、を押します Enter。これで、すべてのコマンドが指定された順序で実行されます。

例:

radu@Radu: ~ $ if :; then> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $
9
Radu Rădeanu

最初に、{を独自の行に配置します。
次に、コマンドを挿入します。
次に、新しい行に}を入力して押します Enter。コマンドが実行されます。

例:

{
echo list
echo of
echo commands
echo to run at once
}

印刷されます(プロンプトは表示されず、一度にすべてが出力されます):

list
of
commands
to run at once

補足として、{ .. }はBashコマンドのグループ化構文です。 &&または||(それぞれ「and」、「or」)と組み合わせて使用​​すると便利です。

4
kiri