ホームページ  >  記事  >  運用・保守  >  bash でよく使用される特殊文字のまとめ

bash でよく使用される特殊文字のまとめ

巴扎黑
巴扎黑オリジナル
2017-08-17 10:31:381706ブラウズ

#

コメント記号(ハッシュマーク)

1. シェルファイルの行の先頭に、シェル呼び出しインタープリタマークとして、#!/bin/bash;

2. 設定ファイル内のコメントとして使用されます。 , 1 行で、# 以降の内容は、複数のコマンドの区切り文字 (コマンド区切り文字 [セミコロン]) として

;

として実行されません。

複数のコマンドを同じ行に配置する場合は、セミコロンを使用してコマンドを区切ることができます。

;;

連続セミコロン (ターミネーター [ダブルセミコロン])。

caseオプションを使用する場合、各オプションのターミネータとして使用されます。

.

ドットコマンド。

1. 現在のディレクトリ内のファイルを実行します

#!/bin/bash .pythontab-file

2. ファイル名の一部として、ファイル名が次のとおりであることを示します。隠しファイル

3. ディレクトリ名として、1 つのドットはカレント ディレクトリを表し、2 つのドットは上位ディレクトリ (カレント ディレクトリの親ディレクトリ) を表します。ドット文字自体を引用符 (単一/二重) で囲まない限り、3 つ以上のドットは表示されないことに注意してください。正規表現では、ドットは任意の文字を表します。

"

二重引用符。

部分引用符。二重引用符で囲まれた内容では、変数展開とエスケープ文字の存在が可能です。

'

一重引用符 (完全引用符 [一重引用符] )。

すべて一重引用符で囲まれた文字は、文字そのものとして扱われます。

コンマ (カンマ演算子 [カンマ])

1。値に対して使用されますが、値の最後の値のみが返されます。 a=$a, b=$b

##This $t1=$b;

バックスラッシュ (エスケープ [バックスラッシュ])

1. 特殊記号の役割のみ。文字列で一般的に使用される特殊記号自体を表します。

2. 命令行の最後に配置され、後続の改行が無効であることを意味します (実際には、Enter はエスケープされます)。入力は現在のコマンドの一部として引き続き使用されます

/

スラッシュ、スラッシュ (ファイル名パス区切り文字 [スラッシュ])

1 パスの区切り文字として、パス内にあるスラッシュは 1 つだけです。スラッシュで始まるパスは、ルート ディレクトリから始まるパスを表します。例: a=4/2

`

。バッククォーテーション (コマンド置換[backquotes])。

コマンド置換。たとえば、a=`dirname '/tmp/x.log'` が返されます。結果は a に割り当てられます。ミッチェルでは特にバックティックと単一引用符が使用されていることに注意してください。

(null コマンド [コロン])

このコマンドは戻り値を返します。 、戻り値は 0 (つまり true) です。

1 のプレースホルダーとして使用できます。 if ブランチ (つまり、ブランチが何もしないとき)

3. :${username=`whoami`}

など、バイナリ演算が必要な場所にそれを配置します。リダイレクト操作 (>) のパラメータ置換割り当ての文字列変数として、ファイルの長さを 0 に切り捨てます (:>> この方法で使用すると、ターゲットが存在する場合は何も行われません)。通常のファイルでのみ使用できます。パイプ、シンボリック リンク、その他の特殊なファイルでは使用できません。

5. コメントに使用することもできます (# の後の内容はチェックされませんが、: の後の内容はチェックされます)。 . ステートメントに構文エラーがある場合は、エラーになります。

6. たとえば、環境変数 $PATH または passwd では、コロンをドメイン区切り文字として使用することもできます。

7. コロンを関数名として使用することもできます。ただし、コロンの本来の意味が変わります (誤って関数名として使用した場合は、unset -f: を使用して関数の定義を解除できます)。

!

感嘆符 (反転 (または否定) [ドーン]、[感嘆符])。

テスト結果または終了ステータスを反転します。

1. 次の != など、等しくないことを意味する逆のロジックを示します。 ls a[!0-9] # a の後に数値が続かないことを示します。

3. さまざまな環境では、感嘆符は間接変数参照にも使用できます。

4. コマンド ラインでは、!$、!#、または ! を使用できます。 3 ご覧ください。ただし、この機能はスクリプト ファイルでは使用できない (無効になっている) ことに注意してください。

*

アスタリスク (ワイルドカード/算術演算子[アスタリスク])。

1. ファイル名拡張子を一致させるためのワイルドカードとして、指定されたディレクトリ内のすべてのファイルを自動的に一致させることができます。

2. 前の一致ルールが任意の数値に一致することを示すために使用できます。倍;

3. 算術演算の乗算を表します。

**

二重アスタリスク。算術演算では、べき乗演算を表します。

?

疑問符 (テスト演算子/ワイルドカード[疑問符])。

1. 条件テストを表します。

2. 二重括弧内の C スタイルの三項演算子 ((condition?true-result:false-result)) を表します。

3. 変数が値セット;

4. ワイルドカードとして、単一の文字と一致するために使用されます。

5. 正規表現では、前のルールと 0 回または 1 回一致することを意味します。

$

ドル記号 (変数置換[ドル記号])。

1. 変数のリーダーとして、変数の内容を参照するために使用されます。例: echo $PATH; 行末 (オフライン終了) を正規表現で使用します。

${}

変数置換。

は文字列内の変数を表すために使用されます。

$'...'

引用符で囲まれた内容を展開し、一重引用符内のエスケープされた内容を実行します (一重引用符は元々そのまま引用されています)。このメソッドは、引用符内の 1 つ以上の [] をエスケープします。 、16 進値を ASCII または Unicode 文字に変換します。

$*

$@

位置パラメータ。

スクリプトファイルを使用する際にパラメータを渡すときに使用します。どちらも呼び出し元のスクリプト ファイルのすべてのパラメータを返すことができますが、$* はすべてのパラメータを全体 (文字列) として返しますが、$@ は各パラメータをパラメータ リストとして単位として返します。使用する場合は、$*、$@ を二重引用符で囲む必要があることに注意してください。これら 2 つの変数は $IFS の影響を受けます。実際のアプリケーションで使用する場合は、いくつかの詳細を考慮する必要があります。

$#

は、スクリプトに渡されるパラメータの数を表します。

$?

この変数値が使用されると、最後のコマンド、関数、またはスクリプトの終了ステータス コード値が返されます。エラーがない場合は 0 です。0 以外の場合は、それを意味します。これより前の最後の終了ステータス コード。実行エラーが発生しました。

$$

プロセス ID 変数。この変数は、現在のスクリプトを実行しているプロセス ID 値を保存します。

()

括弧。

1、コマンドグループ。括弧で囲まれたコマンドがコマンドグループであり、コマンドグループ内のコマンドはサブシェル内で実行されます。サブシェル内で実行しているため、括弧の外の変数の値を取得することはできませんが、逆に、コマンドグループ内で外部の値を取得することができます。これは、ローカル変数間の関係に似ています。実装では、サブディレクトリに移動し、操作の完了後に現在のディレクトリに戻る必要がある場合は、サブシェルを使用して処理することを検討できます。

2.

{x,y,z,...}

中括弧の展開。

この展開を使用して、コマンド内のパラメータ リストを展開できます。コマンドは、リスト内の括弧で区切られたパターンに従って一致し、展開されます。注意すべき点は、この中括弧の展開にはスペースを含めることはできないということです。スペースが実際に必要な場合は、スペースをエスケープするか、引用符を使用して引用する必要があります。例: echo {a,b,c}-{ d," e",' f'}

{a..z}

この中かっこ拡張は Bash バージョン 3 で追加されたもので、{A .. Z} は A ~ Z のすべての文字のリストを表します。ミッチェルはこの方法で展開をテストしましたが、この方法での展開には A ~ Z、a ~ z、および数字 {minimum..max} のみが適用されるようです。

{}

コード ブロック (中括弧)。

これは匿名関数ですが、関数とは異なり、コード ブロック内の変数にはコード ブロックの後でもアクセスできます。注: 中括弧内でスペースとステートメントを区切る必要があります。さらに、xargs -i では、出力テキストの位置をマークするテキスト プレースホルダーとしても使用できます。

{} ;

この {} はパス名を表します。これはシェルに組み込まれていないようです。今見たところ、find コマンドでのみ使用されるようです。最後のセミコロンに注意してください。これは、find コマンドの -exec オプションを終了するコマンド シーケンスです。実際に使用する場合は、シェルによる誤解を避けるためにエスケープする必要があります。

[]

括弧。

1. テストを表現するために、シェルは、外部コマンド /usr/bin/test のリンクを使用するのではなく、[] 内の式をテストします。 ;

2. 配列のコンテキストでは、配列要素の位置を角括弧内に入力して、対応する位置の内容を取得します (例: Array[1])。 =xxx

2. echo${Array [1]};

3. 正規表現では、この位置で照合できる文字セットの範囲を示します。

[[]]

二重括弧。

この構造はテストでもあり、[[]] (シェル キーワード) 内の式をテストします。これは、スクリプト内の論理エラーを防ぐ上で単一角括弧よりも優れています。たとえば、&&、||、<,> 演算子は [[]] ではテストに合格しますが、[] では合格しません。 [[]] にはファイル名の拡張や単語の分割はありませんが、パラメータの拡張やコマンドの置換は使用できます。ファイル名のワイルドカードや空白などの区切り文字は使用されません。ここで 8 進数、16 進数などが表示される場合、シェルは自動的に変換比較を実行することに注意してください。

$[...]

式という単語は整数展開を表します。

角括弧内の整数式を実行します。例:

1. a=3

3. echo$[$a*$b]

5. 10 と 21

(())

二重括弧。

は整数拡張を表します。

二重括弧構造では、すべての式は、a++、b-- などの C 言語のようになります。

二重括弧構造では、すべての変数の前に「$」記号を付ける必要はありません。

二重括弧は論理演算と四則演算を実行できます

二重括弧構造は、条件付きテスト演算を拡張します

複数の式演算をサポートし、各式は「,」で区切られます

; &<

>&

>

<>

リダイレクト。

scriptname >filename scriptname の出力をファイル filename にリダイレクトし、filename ファイルが存在する場合は元のファイルを上書きします。

コマンド &>filename はコマンドの標準出力 (stdout) と標準エラー (stderr) をfile filename in;

command >&2 コマンドの標準出力 (stdout) を標準エラー (stderr) にリダイレクトします

scriptname >>filename scriptname (> と同じ) の出力をファイル filename に追加します。 , if ファイルが存在しない場合は作成されます。 1 つはファイルが存在する場合は上書きされ、2 つはファイルが存在しない場合は作成されることを示します。

[i]<>filename 読み取りまたは書き込み用にファイル filename を開き、ファイルのファイル記述子 (ファイル記述子) として i を指定します。ファイルが存在しない場合は、ファイルが作成されます。

<<

マークを 2 倍小さくします (ここに文書[マークを 2 倍小さくします])。

これはヒアドキュメントとも呼ばれ、後続のコンテンツを左側のコマンドの標準入力にリダイレクトするために使用されます。 <<フォーマット時間を節約し、コマンドの実行処理を容易にします。実装中は、<< と終了識別子を入力するだけでよく、その後 (通常は Enter キーを押した後) 最後の改行に終了識別子を入力する限り、データをインポートできます。完成しました。ヒアドキュメントを使用する場合、スペースや改行などを保持できます。シェル スクリプトをすっきりさせたい場合は、<< とターミネータの間にハイフン (-) を入れることができます。

<<<

3 未満の記号 (ここでは文字列)。 Here-string は Here-document と似ており、here-strings の構文は次のとおりです。 command [args] <<<["]$word["]; $word は展開され、コマンドの標準入力として使用されます。

<...>

単語の境界。

これは、単語の境界をマークするために正規表現で使用される特別な区切り文字です。たとえば、the は there、another、them などに一致します。the のみを一致させたい場合は、この単語境界文字を使用できます。 は the のみに一致します。

|

パイプ。パイプは Linux と Unix の両方に存在する概念であり、非常に基本的で重要な概念です。その機能は、パイプ (左側) の前のコマンドによって生成された出力 (stdout) を、パイプ (右側) の後のコマンドの入力 (stdin) として使用することです。例: ls | wc l では、パイプを使用してコマンドを接続できます。注: パイプ内の各プロセスの標準出力は、次のコマンドの標準入力として使用されます。この期間中の標準出力は、パイプを越えて後続のコマンドの標準入力として使用できません (例: cat filename)。 | ls -al ソート。この出力について考えてみてください。また、パイプは子プロセスとして実行されるため、パイプによって変数が変更されることはありません。

>|

リダイレクトを強制します。

これにより、既存のファイルが強制的に上書きされます。

&

アンパサンド (バックグラウンドでジョブを実行[アンパサンド])。

コマンドの後に & 記号が続く場合、コマンドはバックグラウンドで実行されます。

&&

||

論理演算子。

テスト構造では、これら 2 つの演算子を使用して 2 つの論理値を接続できます。 || テスト条件の 1 つが true の場合は 0 (true) を返し、すべてが false の場合は false を返します。&& は、両方のテスト条件が true の場合は true (0) を返し、存在する場合は false を返します。

-

マイナス記号、ハイフン(ハイフン/マイナス/ダッシュ)。

1. オプションとして、[オプション、プレフィックス] が使用されます。

2. stdin または stdout リダイレクトのソースまたは宛先 [ダッシュ]。tar に bunzip2 プログラム パッチがない場合は、次のようにすることができます: bunzip2 linux-2.6.13.tar.bz2 |事前に解凍したデータを tar の標準入力として使用します (ここでは - を使用します)

注: 実装中に、ファイル名が [-] で始まる場合、これを方向演算子として追加すると、エラーが発生する可能性があります。同様に、変数をエコーするときに、変数が [-] で始まる場合、予期しない結果が発生する可能性があるため、安全のために二重引用符を使用することができます。引用スカラー:

N var = "-n"

echo $ var

## 出力が何であるかを確認してみてください。

また、この表現方法は Bash に組み込まれていません。この効果を実現するには、使用しているソフトウェアがこの操作をサポートしているかどうかを確認する必要があります。

3. したがって、次のようになります。別のディレクトリに cd して、前のパスに戻りたい場合は、cd - を使用して目的を達成できます。実際、ここで [-] は環境変数 $OLDPWD を使用しています。異なります。

4. 算術演算でマイナス記号が使用されています。

=

に等しい。

1. 変数に値を代入するとき、等号の両側にスペースがありますか?

2. 四角形の比較として表示される場合に注意してください。括弧の場合は、等号の左側と右側にスペース文字が必要です。

+

プラス。

1. 加算を表す算術演算子。

2. 正規表現では、コマンドまたはフィルターのオプション マークとして + を使用します。一部のコマンドまたは組み込みコマンドで特定のオプションを有効にし、- を使用して無効にします。

4. パラメーター置換 (parametersubstitution) では、+ 接頭辞は置換値を表します (変数が空の場合は、+ の後の値を使用します)。

%

パーセント記号 (モジュロ[パーセント記号])。

1. 算術演算では、これは 2 つの数値を除算した後の剰余演算子です。

2. パラメーターの置換では、パターン マッチングとして使用できます。例:

p=b*9

var="abcd12345abc479"

’ s ’ s ’ s ’ s ’ s ’s’s’ ‐ ‐ ‐ ‐ ‐ p=b*9

)

## B から 9 までの任意のコンテンツ (含む)

## 最初は、最も短い一致一致を見つけることです

##) 最大一致アイテムを見つけた後のもの (貪欲な一致?)

~

チルダ (ホームディレクトリ[チルダ])。

これは内部変数$HOMEと同じです。デフォルトでは、現在のユーザーのホーム ディレクトリ (ホーム ディレクトリ) を示します。チルダの後にユーザー名が続く場合は、ユーザーのホーム ディレクトリを示します。

^

カレット。

1. 正規表現で、行の行頭位置識別子として使用します。

2. パラメータ置換 (Parametersubstitution) では、キャレット (${ var^}) を使用する 2 つの方法があります。または 2 つ (${var^^})。これは、最初の文字が大文字で、すべて大文字が使用されることを意味します (Bash バージョン >=4)。

ホワイトスペース

ホワイトスペース。

ホワイトスペースはスペースだけを指すのではなく、タブ、空行、またはこれらの組み合わせも指します。空白行はスクリプトの動作に影響を与えないため、組み込みの特殊変数 $IFS を使用してスクリプト コードを計画することができます。特定のコマンドを対象とするために使用されます。入力パラメータは分割されており、デフォルトは空白文字です。文字列または変数に空白文字が含まれている場合は、引用符を使用してエラーの可能性を回避できます。

以上がbash でよく使用される特殊文字のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。