BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Linuxで役立つ10の連鎖演算子と実用的な例

Linuxコマンドの連鎖とは、複数のコマンドを組み合わせて、それらの間で使用されるオペレーターの動作に基づいて実行させることを意味します。 Linuxでのコマンドの連鎖は、シェル自体で短いシェルスクリプトを記述し、ターミナルから直接実行するようなものです。連鎖により、プロセスの自動化が可能になります。さらに、無人の機械は、チェーンオペレーターの助けを借りて非常に体系的な方法で機能することができます。

Linuxで役立つ10の連鎖演算子と実用的な例

関連項目: Awkおよび正規表現を使用してファイル内のテキストをフィルタリングする方法

この記事は、頻繁に使用されるコマンドチェーン演算子に光を当てることを目的としています。 、簡単な説明と対応する例を使用して、生産性を確実に向上させ、システムの負荷を軽減するだけでなく、短くて意味のあるコードを記述できるようにします。

1。アンパサンド演算子(&)

」の機能 ‘はコマンドをバックグラウンドで実行することです。コマンドに続けて空白と「」を入力するだけです ‘。バックグラウンドで複数のコマンドを一度に実行できます。

バックグラウンドで1つのコマンドを実行します:

admin@wsxdn.com:~$ ping ­c5 www.tecmint.com &

2つのコマンドをバックグラウンドで同時に実行します:

admin@wsxdn.com:/home/tecmint# apt-get update & apt-get upgrade &

2。セミコロン演算子(;)

セミコロン演算子を使用すると、一度に複数のコマンドを実行でき、コマンドの実行は順番に行われます。

admin@wsxdn.com:/home/tecmint# apt-get update ; apt-get upgrade ; mkdir test

上記のコマンドの組み合わせは、最初に updateを実行します 指示、次にアップグレード 指示し、最後に「テスト」を作成します ‘現在の作業ディレクトリの下のディレクトリ。

3。 AND演算子(&&)

AND演算子 && )最初のコマンドの実行が SUCCEEDS の場合、2番目のコマンドのみを実行します つまり、最初のコマンドの終了ステータスは 0です。 。このコマンドは、最後のコマンドの実行ステータスを確認するのに非常に役立ちます。

たとえば、ウェブサイト tecmint.comにアクセスしたい ターミナルでlinksコマンドを使用しますが、その前に、ホストがライブであるかどうかを確認する必要があります またはない

admin@wsxdn.com:/home/tecmint# ping -c3 www.tecmint.com && links www.tecmint.com

4。 OR演算子(||)

OR演算子 || )は「その他」によく似ています プログラミングにおける‘ステートメント。上記の演算子を使用すると、最初のコマンドの実行が失敗した場合、つまり最初のコマンドの終了ステータスが「 1 」の場合にのみ、2番目のコマンドを実行できます。 ‘。

たとえば、「 apt-getupdate」を実行したい ‘非rootアカウントから、最初のコマンドが失敗した場合、2番目の‘リンクwww.tecmint.com ‘コマンドが実行されます。

admin@wsxdn.com:~$ apt-get update || links tecmint.com

上記のコマンドでは、ユーザー 更新は許可されませんでした システムの場合、最初のコマンドの終了ステータスが「1」であることを意味します したがって、最後のコマンド「linkstecmint.com ‘が実行されます。

最初のコマンドが正常に実行され、終了ステータスが「 0」の場合はどうなりますか ‘?明らかに! 2番目のコマンドは実行されません。

admin@wsxdn.com:~$ mkdir test || links tecmint.com

ここで、ユーザーは「テスト」フォルダを作成します ‘は、ユーザーが許可されているホームディレクトリにあります。コマンドが正常に実行され、終了ステータスが「 0」になりました ‘したがって、コマンドの最後の部分は実行されません。

5。演算子ではありません(!)

NOT演算子 )は「例外」によく似ています ' 声明。このコマンドは、指定された条件を除くすべてを実行します。これを理解するには、ディレクトリ「 tecmint」を作成します ホームディレクトリの‘と‘ cd ‘それに。

admin@wsxdn.com:~$ mkdir tecmint 
admin@wsxdn.com:~$ cd tecmint

次に、フォルダ「 tecmint」にいくつかの種類のファイルを作成します ‘。

admin@wsxdn.com:~/tecmint$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

フォルダ「tecmint」内にすべての新しいファイルを作成したことを確認してください ‘。

admin@wsxdn.com:~/tecmint$ ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

次に、「 html」を除くすべてのファイルを削除します 「スマートな方法で、一度にすべてのファイルを作成します。

admin@wsxdn.com:~/tecmint$ rm -r !(*.html)

確認するために、最後の実行。 lsコマンドを使用して、使用可能なすべてのファイルを一覧表示します。

admin@wsxdn.com:~/tecmint$ ls 

a.html  b.html

6。 AND – OR演算子(&&– ||)

上記の演算子は、実際には「 AND」の組み合わせです。 ‘および‘または ‘オペレーター。これは「if-else」によく似ています ‘ステートメント。

たとえば、 tecmint.comにpingを実行してみましょう。 、成功した場合は「確認済み ‘else echo‘ホストダウン ‘。

admin@wsxdn.com:~/tecmint$ ping -c3 www.tecmint.com && echo "Verified" || echo "Host Down"
サンプル出力
PING www.tecmint.com (212.71.234.61) 56(84) bytes of data. 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from www.tecmint.com (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- www.tecmint.com ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

次に、インターネット接続を切断して、同じコマンドを再試行します。

admin@wsxdn.com:~/tecmint$ ping -c3 www.tecmint.com && echo "verified" || echo "Host Down"
サンプル出力
ping: unknown host www.tecmint.com 
Host Down

7。 PIPEオペレーター(|)

このパイプ 演算子は、最初のコマンドの出力が2番目のコマンドへの入力として機能する場合に非常に便利です。たとえば、「 ls -l」の出力をパイプライン処理します ‘から‘少ない ‘とコマンドの出力を確認してください。

admin@wsxdn.com:~$ ls -l | less

8。コマンドの組み合わせ演算子{}

2つ以上のコマンドを組み合わせると、2番目のコマンドは最初のコマンドの実行に依存します。

たとえば、ディレクトリが「 bin」かどうかを確認します ‘が使用可能かどうか、対応する出力を出力します。

admin@wsxdn.com:~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9。優先順位演算子()

演算子を使用すると、コマンドを優先順に実行できます。

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

上記の疑似コマンドで、 Command_x1 失敗しますか? Command_x2のどちらでもない 、 Command_x3 Command_x4 実行されます。このために、優先順位演算子を使用します。 、as:

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

上記の疑似コマンドで、 Command_x1 の場合 失敗、 Command_x2 これも失敗しますが、それでも Command_x3 およびCommand_x4 実行は、 Command_x3の終了ステータスによって異なります。 。

10。連結演算子(\)

連結演算子 \ )名前が示すように、シェルの複数の行に大きなコマンドを連結するために使用されます。たとえば、次のコマンドはテキストファイル test(1).txtを開きます 。

admin@wsxdn.com:~/Downloads$ nano test\(1\).txt

それは今のところすべてです。私はすぐに別の興味深い記事を考え出します。それまでは、しばらくお待ちください。健康で、テクミントに接続してください。 。コメントセクションで貴重なフィードバックをお寄せください。


  1. Linuxでwatchコマンドを使用する方法と例

    Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時

  2. 6 つの実用的な例を含む Bash シェル関数のチュートリアル

    Bash シェル関数は、グループに単一の名前を使用して、後で実行するために複数の UNIX / Linux コマンドをグループ化する方法です。 . Bash シェル関数は、通常の Unix コマンドと同じように実行できます。シェル関数は、それらを解釈するための新しいプロセスを作成することなく、現在のシェル コンテキストで実行されます。bash エイリアスと関数の両方を使用すると、より長い、またはより複雑なコマンドのショートカットを定義できます。ただし、エイリアスは、このチュートリアルで説明されているように、これらの関数が許可する制御フロー、引数、およびその他の巧妙なものを許可しません。 この