シェルスクリプト方言の知識(オリジナル)

記事の手書きの戦いは、自身が作成したコンテンツではないが、当然のことながら、戦うために、目的は方言を使用して、より良い記録シェルスクリプト、それらの使用を理解することです! 

 

   !(感嘆符)、二重引用符で印刷することができない、単一引用符は出力のみを印刷するために使用することができます。しかし、bashの環境では、出力に感嘆符は、単一引用符を使用する必要があります。感嘆符の使用は、デフォルトでhistoryコマンドリファレンスメモリ設定を開くには、これはあなたが+ Hが、あなたは感嘆符の出力を使用することができ、設定をオフに設定し使用することができ、あります。(完了)

 

もし任意の引用符エコー、それは明らかに出力することができませんセミコロン「;」、セミコロンはコマンド接続シンボルシェルとして解析されますので。あなたの場合は、「」、改行を追加する必要はありません
難病を克服するために、二重引用符と悪い出力感嘆符ので、echoコマンドを使用する方法は、別途特別なシンボルへの参照ですが、唯一の単一引用符で変数を展開することはできません。
エコー-eは、このような改行、nは、タブの\ T、\をエスケープなどのエスケープ記号と特殊な意義を、認識しています。
デフォルトでは、各行のエコー-n終了せずに、エコーキャンセルブランチ-nの出力を使用して、改行を追加します。(完了)

 

エコーは、フォントの色と背景色の出力を制御することができます。
共通のフォントの色:リセット= 0、30 =、ブラック31 =赤、32 =緑、33 =黄色、= 34、35 =紫、青、36 =青、37 =白。
共通の背景色:リセット= 0、= 40、黒41 =赤、42 =緑、43 =黄色、= 44、45 =紫、青、46 =青、47 =白。
フォント制御オプション:4を下線、ハイライトのための1、5はフリッカを表します。
特殊記号を使用する必要性、そんなに特別な記号を認識するように-eオプションを満たすために必要があるため。(完了)

 

使用のprintf出力は、より規則的かつよりフォーマットすることができます。これは、C言語のprintfコマンドを意味するが、わずかに異なります。
、右揃え(デフォルト)など小数出力形式-のprintfは(マイナス記号を使用して)左側のアラインメントを達成するために、列の幅を使用して指定することができます。
:printfの2点の最もことに注意してください
(1)のprintfのデフォルトはラインフィードの終わりではない、手動で「\ n」は変更番号を追加するので、それは、同じエコーない;
(2)のprintf形式の出力だけではなく、変更を行います任意の結果、出力での浮動小数点形式は、結果は単に表示された結果を変更し、同じフロートです。(完了)

 

、および二重番号「&&」と二重管「||」コマンドの複数に接続されている、「」Linuxはセミコロンで使用することができます。それはバックグラウンドコマンドの前に配置されることを除いて、単一の「&」記号はまた、シンボルカウント指令に接続され、コマンドが並列達成変装して実行することができます。
セミコロン:コマンドの間には論理的な関係はありません。セミコロン接続コマンド・シーケンスは、前方から後方への順序で実行されますが、論理的なコマンドにセミコロンが終了との間には関係はありません、すべての主要なセミコロンコマンドエラーがで後続のコマンドには影響しない場合でも、コマンドは最終的に実行されます書きます。(DONE)

&&と記号:ロジック。&&コマンド接続は、過去の実行のために戻ってくるが、正しく実行コマンド1コマンド2の前に実行されたときのみのCommand1が正しく行われていない場合、コマンド2を実行されません。bashで、事前に定義された変数によって判断する「$?」コマンドが正しく実行され、以前のコマンドならば、「$?」0の値は、他の値が正しく実行されなかっ示し、正しい実装を示します。(DONE)

論理和。コマンド||接続は、過去に実行順に戻って、だけコマンド2の実装前に、Command1を間違って実行すると、Command1をが正しく行われていないコマンド2を実行します。&&と||記号は、左右のコマンドシンボル間の論理的関係を有する、短絡されています。
概要:セミコロンは、コマンド実行時の2の間には論理的な関係にかかわらず、失敗の成功の実行されていない&&、正しくだけ前のコマンドに署名し、戻って実行します。||二重の垂直線だけ前のコマンドが正しくない、失敗は、2番目のコマンドが続きます。
どちらのコマンドは、セミコロンを実行します。コマンドの間に論理的な接続関係ない
適切第二を行う前に&&。コマンド・ロジック間の接続があります。
|| 2回目の失敗の最初の実行の前に。論理的に関連する(DONE)コマンドとの間に接続されている


場合は、動作変数の値、使用$、変数の動作自体は、$を使用しない場合。(完了)

スクリプト言語が弱い言語を入力され、変数は通常でも、スクリプトを実行すると、インタプリタは何時間変数に知ってオペレータによって解釈インタプリタを初期化する必要がないことを特別に音を必要としないどのようなタイプなので、あなたが直接割り当てを使用することができます。bashは、変数は関係なく、引用の使用は、割り当ては、文字列として格納されているマークするかどうかの、デフォルトの文字列型です。(DONE)

未設定の解除--- STR変数が解放され、フロント¥なしstrの
環境変数として暫定アップグレード通常の変数:そう$ strの現在のシェルの輸出STRまたは割り当ての輸出STR =「値」、およびサブシェルすることができ使用は、しかし、輸出の影響を相殺するスクリプトまたは再ログインシェルを終了します。(完了)

読み取り専用STR:読み取り専用変数の定義を。このとき、読み取り専用の変数の使用を継続するために、設定を解除変数にはできませんだけを再ログインシェルを変数の値を変更することはできません。(完了)


「$ {}」参照変数を使用する場合は、あなたの前に変数名は、変数の#文字の長さで表示することができます。また、(DONE)スペース長と考えられている

[-aixr]変数の型変数を定義するDECLAREは(DONE)-x環境変数を宣言するように変更され

た場所固有の変数と変数が
?上で実行されるリターン命令コードを$:、標準出力リターン0 、それは、そうでない場合は標準エラー出力、適切に行われます。
$$:現在のPIDのシェル。bashのコマンドやシェルスクリプトを実行することに加えて、$$親シェルの値を継承しません、とサブシェルの他のタイプは継承されています。
$ BASHPID:各シェルの$ BASHPIDが独立しているため、現在のPIDシェル、これと「$$」は、異なっています。「$$」時には親がシェルの値を継承します。
バックグラウンドプロセスPID $!:最新の実行。
$#:統計パラメータの数。
$ @を:例えば、 "A" "B" "Cなどのすべての個々のパラメータ、 " "D"。
$ *:例えば、 "ABCD"など全体的に全てのパラメータ、。
$ 0:スクリプト名。
$ 1 ...... $ N:パラメータの場所。(DONE)

変数代入:
$ {パラメータ:-word}:パラメータがnullまたは未定義の場合、変数「単語」を展開し、そうでない場合、パラメータ値に展開;
$ {}パラメータワード:および$ {パラメータ: -word}ほぼ同等であるが、パラメータセットに加えて空の場合、結果変数はなく単語よりも、nullになります。この用法であり/etc/init.d/httpd。
$ {パラメータ:
$ {パラメータ:=ワード}パラメータがnullまたは未定義の場合、変数割り当て(アサインノートが展開されていない)「単語」として、そうでなければそれ自体をパラメータ;
$ {パラメータ=ワード}:これは、マンのbashではありません{:=単語パラ} $に相当し、定義されていますが、テストしました。
$ {パラメータ:オフセット}:文字が最後の文字のオフセットから取るし始め、部分文字列を取る;
$ {パラメータ:オフセット:長さは}:文字のオフセット、レンス長さを取るから始めて、部分文字列を取るをサブ;(行われる)


コンフィギュレーションファイルの変数の値には、スクリプト内で使用可能な
ソースCONFIG_FILEまたはCONFIG_FILEの使用を指示し、スクリプト内のコンフィギュレーション・ファイルを呼び出すために。
サービスの起動スクリプトは、設定ファイルをサポートしています。同じ名前のは/ etc /のsysconfig /サービススクリプトプロファイル(DONE)


スケール。4 =平均滞留時間がある小数点(DONE)小数点以下4つの小数点以下のスケールに計算される

BC << EOF EOFは、(DONE)BCに逆入力コマンドの実行結果にリダイレクトされ、

エコー$?整数エンドシェルスクリプトのスクリプトコードが正常に実行され、その後、取得スクリプトが失敗した場合、それは0整数以外で0です。(完了)

 


LINUX $?終了ステータス
0が正常に完了し、コマンド
1一般不明なエラー
2は、適切なSHELLコマンドではありません
126実行コマンド/コマンド実行エラーではありません
127コマンドが見つかりません
128無効なパラメータ終了
+ X X深刻なエラーのLINUX信号に関連する128
130 CTRL + Cコマンド終了
正常範囲外の終了ステータスコード225(DONE)

 

構造化コマンドを使用すると、プログラムの実行の順序を変更することができます!
コマンドならば
、コマンド
Fiを提供して-それがあるかのように理解することができます。オン。もちろん、その後、ifコマンドが正常に実行される後。その後、その後のバックを実行します。
コマンドがあれば、次に
コマンドを
同じ行のセミコロンの後ろFi回線---コマンドをのみフォーマットは、より良い光景になりますことができます
当時、あなたは複数のコマンドを実行することができFI場合。戻り値が0の場合は正常に実行されることを条件とします。(DONE)

コマンドを実行した場合)
、その後(最初のコマンドが正常に実行ここで実行された)
他の(最初のコマンドが実行され、正常ここで実行)
Fiの(文が終了)---されたif-then-else(行われます)

-n -zとデータを含む変数は、(DONE)かどうかを確認することができます


リストのVARのため

コマンド
DONE   

何のためには、エスケープするか、二重引用符でするループポイントの形式、「一重引用符を指摘しました。
特別な環境変数の内部フィールドセパレータIFS =¥「\ n」がスクリプトは、他の唯一のIDSの改行、タブ、スペースが認識されない認識されていることを意味します。(DONE)

IFS.OLD = $ IFS
IFS = $ '\ N-'
<新しいIFS値>
IFS = $ IFS.OLDので、確実に大規模なスクリプト環境以降の使用デフォルトのIFS値
IFS = $ '\ n'は: ;「このスクリプトにセミコロン、コロン、二重引用符は、フィールドセパレータとして割り当てられている(DONE)

 

ループのためのC言語
(I ++)は。;;私は= 100 <(I = 1)のため

、「この番号は次の$ iが」エコー
DONE
実行するときに、戻り値が0でない停止ループになるまで$ 0
両端を破るためにブレーク実行実行サイクルのサイクル数は、NN =(DONE)破る

ループはプログラミングの一部です。順番に3つのサイクルを提供するために使用することができるのbashシェルスクリプト。
(1)コマンドのためにあなたは、良い提供し、一連の値を通過することを可能にするファイルの拡張子によって変数に含まれているかのどちらかのコマンドラインでファイル名やディレクトリ名にマッチ得ます。
(2)一般的なコマンドまたはコマンドを使用している間は、コマンドサイクル条件に基づいて、テストコマンドを提供します。反復ループは、コマンド(または状態)に指定され続ける間だけ、0のコマンドの終了ステータスのセットを生成します。
(3)コマンドはまた、反復コマンドのための方法を提供しますが、それは反復は、コマンド(または条件)にゼロ以外の終了ステータスを生成するための基盤を確立することですされるまで、この機能を満たしている必要がありますが、繰り返しのフロントエンドを設定することができます条件。
(4)循環が多層周期を生成するために、シェルスクリプトで組み合わせることができます。bashシェルを提供し、breakコマンドを継続することで、通常のプロセスサイクルのサイクルの値に応じて変更することができます。
(5)bashシェルは、出力を変更するための標準的なコマンドのリダイレクトと配管ループの使用を可能にします。あなたは、ファイルまたは別のコマンドにリダイレクト出力のサイクルへのリダイレクトを使用することができます。これは、機能の富を提供する制御シェルスクリプトです。(DONE)

ベース名コマンドは、スクリプト名にパスが含まれていませんが返されます。
例えば、バッシュ/home/dp/dp.sh
このファイルには、パス名がそれを取得していないファイルを取得する方法/home/dp/dp.shのですか?
dp.sh CATの
名= $(ベース名$ 0)
$名(DONE):ザ・でエコーがファイルである

$ 0はプログラムの名前であるファイル名は特殊変数である
$#は、スクリプトが追加抽選後に実行できるスクリプトに追加特殊変数でありますパラメータの合計額。
コラム:CAT dp.sh
このDP $#金融商品取引法
./dp.sh 1 2 3 4 5 6
このDP 5ファイル
$変数に加えて、特別な括弧もコマンドのテストスクリプトの実行、いくつかのパラメータ{!#)}
$と@ * $特殊変数は以下のとおりです。
(1)$ @をパラメータごとに個別のプロセスになります。
(2)$ *全てのパラメータは、単一のパラメータとしてデータを処理します。
コラム:dp.sh 2. 5. 4. 3. 1
$ * = 2. 5. 4. 3. 1
。。$ $ @ = @ = 5. 4. 3 = $ @ $ 2 $ @ = @ = 1(DONE)

シフトコマンド(特殊変数)
このコマンドを使用しますパラメータはするだろう
2 shitf
:エコー「$ 1 Numberは、ファイル」
1つの2 3 4 5 0 $の動きが左に移動しない./dp.sh
列を:CAT dp.sh
エコー「ファイルにある:* $」
ファイルでは、次のとおりです。1 5. 4. 3 2
番号ファイル:. 3
あなたは簡単に不要なパラメータをスキップするように、左に2つの移動を実行しますSHIFT2上記のパラメータを使用してください!(完了)



-二重ダッシュは、パラメータおよびオプションから分離される
列挙された:-d)このDP番号-d
-C)-C NumberこのDP
- )シフト
BREAK ;;
リダイレクション:
0 STDIN標準入力
1 STDOUT標準出力
2 stderrの標準誤差
列子:LL 2> dp.txt 1> dp1.txt対応するファイルの対応する出力にリダイレクト
LL&> dp.txt、正しいエラーがファイルに入力されているが、この欠点は、エラーメッセージを表示することが不便であるかどうか、すべて一緒に混合します。まだよく分離。(DONE)

Execの
Execのコマンドは、スクリプトの実行、特定のファイルディスクリプタのリダイレクト中にシェルに指示します。
例:EXEC 1> dp.txt

 

#は、ファイルの内容を空に
CATを/ dev / null>テストファイルの
ティーの$ |#が「日」teeecho書き込み出力をリダイレクトするファイル(なさを)

 

おすすめ

転載: www.cnblogs.com/Michaelblue/p/11441874.html