ターミナルへの1回のリクエストで(ファイルを使用せずに)複数のコマンドを次々に実行する方法は?


22

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

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

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

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


1
コマンドラインでは、コマンドをセミコロンで区切ることができます。
John1024 14

回答:


27

&&またはでコマンドを区切ることができます;

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

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

    command1; command2; command3
    

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


6
以下のためcommand1 && command2のCommand1が成功した場合にのみcommand2の実行されます。
souravc


@souravc:編集しました、ありがとう、何かを学びました。
MrVaykadji 14

場合組み合わせるsudo apt upgradesudo systemctl reboot、あなたは二回「sudoを」を追加する必要があります、またはそれは、2番目のコマンドのためにsudoを「覚えている」のでしょうか?
公園

9

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: / $

if true; then必要に応じて読みやすくすることができます。一見:混乱しているかもしれません;
キリ14

4

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

例:

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

印刷されます(一度にすべて、一度にプロンプ​​トなしで):

list
of
commands
to run at once

補足として、{ .. }Bashコマンドのグループ化構文です。多くの場合、&&or ||( 'and'、および 'or')と組み合わせて使用​​すると便利です。


それはif :; thenすでに言及したものと同じですか?それとも、わずかに違いますか?
MrVaykadji 14

1
@MrVaykadji同じ結果ですが、方法は異なります。if :nullコマンドでテストを実行し、常にtrueを返します。{ .. }コマンドをグループ化するだけです。個人的{ .. }に覚えやすいと思います。
キリ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.