最終的にはシェル、シェルプログラミングにバインドされているLinuxのといえば、多くの機能を持っている構文。
まず、プログラミングコードの最初の段落では、各学習常にこんにちは言葉であります
シェルで:
エコー「こんにちは言葉」。 #まったく同じとPHPであることが判明
1.変数の定義と命名
命名規則:(1)名前だけ文字、数字、アンダースコアは、最初の文字は数字で始めることはできません。
(2)スペースなし、下線(_)を使用することができます。
(3)あなたは、句読点を使用することはできません。
(4)は(利用可能な予約済みのキーワードを表示するには、helpコマンド)bashのキーワードで使用することはできません。
PS:変数のいずれかの修飾子なしの定義、および周りのスペースを持つことができない=次でなければならない、シェルは宇宙において重要な役割を持っている、あなたは定義の配列を見つけるでしょう。
シェル変数名前付きインスタンス:
名前=「暁明」。 $名前をエコー。
2.変数の使用
我々はそれに署名変数$を使用する必要がある変数の定義が完了すると
例:
名前=「xiongming」。 $名前をエコー。 エコー$ {名前};
2つの方法が可能である上に、PHP変数に非常に類似して、最初の比較的単純な、第二はより厳密で使用するだけでなく、他の用途を有しています
エコー$ {#名}出力変数名は、特別な長さの統計#文字列の長さと配列長を満たすために使用することができてもよいです
配列の3。定義
配列を定義する際のスペースの特別な役割を理解することができるようになります
数=(1 2 3 4 5)。 番号[0] = 1; 番号[1] = 2; 番号[2] = 3; 番号[3] = 4; 番号[4] = 5。
上記二つの方法シェル配列に定義され、シェルが直接2次元配列をサポートしていないだけでなく、構築することができる、二次元アレイは、ループのためのキーで使用することができます
2次元アレイを構築します
アレイ=(「名前年齢性別」「幅、高さの長さ」「黒赤白」)。 エコー$ {アレイ[@]}。 エコー$ {アレイ[*]}。
エコー$ {#アレイ[@]}。
アレイ、@を使用する場合、配列のすべての値への参照である、*、#は、配列の長さです。
前記送信パラメータは、関数を定義し
シェルは、パラメータが送信を事前定義されたパラメータを渡す必要はありません
すべてのパラメータが渡された最初のいくつかのパラメータは$ 1 $ 2 $ 3 ...自動コール転送を使用します。
$ 0 bashは特殊パラメータ$ 0は実行中のプロセスの名前です。あなたは、シェルの内側にそれを使用する場合は、シェルの名前を返します。スクリプト内で使用する場合は、スクリプトの名前になります。
例:
param_test(){ 「$ 0は現在のシェルの名前である」エコー。 エコー「$ 1は、第1引数があります」。 エコー「$ 2は2番目のパラメータはあります」。 エコー「$ 3 3番目のパラメータがあります」。 } 1 2 3 param_test
使用5.Forサイクル
ここで一般的に使用される2つの形式を表示するには、多くの方法がありますがforループを使用します
リスト=(1 2 3 4 5)。 リスト中のiについて #listは、制御周期の配列、すなわち、サイクル配列の長さであります 行う #ここで必要な操作コマンドを実行します エコー "$ I" 行われ 第二の方法######## (; I <= 5; I ++)(I = 1の)のために 行う エコー「これは最初の$ Iこのサイクルです。」 行われ
使用6.Whileサイクル
例:
A = 5 しばらく(($ NUM <= 10)) 行う エコー$ NUM "$ NUM ++" しましょう。 行われ
7.演算子を使用するオペレータ
シェルは、直接使用する算術符号などの従来のプログラミング言語とは異なり、計算することができる、ことがより特別な演算子で
コマンドを使用するかのexprをさせなければならないオペレータを使用するために
面倒7.1式exprのバッククォートも ``演算式を使用する必要がある個人的な感触を使用して、例えば2 + 2は、2 + 2であってはならない式と演算子の間にスペースが含まれます
か式2 + = '3' エコー$ NUM 式「= 2か\ * 3` エコー$ NUM #乗算は、アスタリスクの前にバックスラッシュを使用する必要があります。 確かMOD 8 = `\ 2 ' エコー$ NUM 8 = '発現するかどうか - 2` エコー$ NUM
7.2 LETの使用がより便利であり、それは速く、数回よりも効率の式exprをテストし、あなたは、等号の前後にスペースを持つことができない、オペレーターとデジタルの間にスペースを入れることはできません
NUM = 2 + 3みよう エコー$ NUM NUM = 2-3ましょう エコー$ NUM 聞かせてNUM = 2 * 3 エコー$ NUM NUM = 8月2日ましょう エコー$ NUM
8.関係演算子
2つの数値を検出-eq、等しい真戻り等しいです。(等しい)
真等しくない戻り、二つの数が等しくないかどうかを検出-ne。(等しくない)
数が左に右よりも大きいか否かを検出し、もしそうなら、それは真を返す-gt。(より大きい)
数はそう、trueを返した場合、権利を検出-lt未満左よりなります。(未満)
もしそうであれば数-ge大きいか否かを検出するよりも、または右から左に等しく、真を返します。(以上)
そうであれば、検出-le左右以下の数は、trueを返すかどうか。(最後か等しい以内レスはしている)
これらの関係演算子は、私はそれが困難を覚えておくことが見つけるだろうが、それは覚えにくい良い混乱を感じるんが、彼らは英語の略語を来ている覚えておくことは非常に簡単です:PS
= 10 B = 20 もし[$ A -eq $ B] それから エコー「$ -eq $ bの:Bに等しいです」 他 エコー「$ -eq $ bの:Bと等しくありません」 されます もし[$ $ -ne B] それから エコー「$ -ne $ bの:Bと等しくありません」 他 エコー「$ -ne $ bの:Bに等しいです」 されます [-gt $ bを$]場合 それから エコー「$ -gt $ bの:bよりも大きいです」 他 エコー「$ -gt $ bの:bより大きくありません」 されます
9.ブール演算子
!非運用
-o OR演算
操作-a
= 10 B = 20 もし[$!= $ B] それから エコー "$ A = $ B :! Bと等しくありません" 他 エコー「$ == $ B:Bに等しいです」 されます [15 -gt $ A -lt 100 -a $ B]の場合 それから エコー「$ $ bが100未満と15以上である:trueを返し」 他 エコー「$ $ bが100未満と15以上である:falseを返します」 されます [100 -gt $ A -lt 100 -o $ B]の場合 それから エコー「$ $ bが100未満または100より大きい:trueを返し」 他 エコー「$ $ bが100未満100以上である:リターン偽」 されます
10.論理演算子
これが私たちの定期的なプログラミング言語が同じです
AND論理&&
||論理和(OR)
= 10 B = 20 もし[[$ -lt 100 && $ B -gt 100]] それから エコー「trueを返します」 他 エコー「リターン偽」 されます [[$ -lt 100もし|| 100 -gt $ B]] それから エコー「trueを返します」 他 エコー「リターン偽」 されます
11. IF演算子
每个 if 和 elif 后面要接上then,最后一个 else 则不需要then ,必须要以 fi 结尾。如果 elif 后面没有需要执行的语句则不可以写这个elif,不可留空
a=10; b=20; if [ $a == $b ] then echo "相等" elif then echo "不相等" else echo "没有任何符合" fi