シェル-07文字列の配列を持ちます

シェル-07文字列の配列を持ちます

配列

        アレイ白は連続変数の期間、連続したメモリ・ストレージ・スペースであること

        解像度:過度の変数の問題;同じの変数は、我々は複数の名前を定義する必要がありますが、定義する方法の配列ではありません。(リスト)

        配列名インデックス

        配列を定義する方法:

               -iを整数(ステートメント)に定義された宣言

               -a定義配列の配列を宣言

               ネストされた配列に定義宣言-A

                      クラスは良い雲だった[1] =クラウドは、[1]クラウド3つのクラス= [1] = XX

                      [一般bashで使用されていない値のようなデータセット]

        [Pythonとシェル]               

アレイ= 1

              どのように配列の割り当てに:

                     アレイ=()

  1. 配列[0] =(コンピュータ言語で、一般的にインデックスは0から始まる、インデックス番号は、必ずしもではない:キー値配列[A] = 1;配列割り当てにおけるシェルがホップすることができる - ホップ割当て)
  2. 各ファイルの列=(は/ var / log / *。ログ)-----は、配列値に対応します

アレイ=(ABCD)

  1. アレイ=(A '= 187'c =' 188'b = '170')
  2. リードコマンドを経由して割り当て

-t 1 -a可変目標値入力配列を読み取る-p説明指定された遅延

-aabcde読みます

              どのような機能の移転:

                     } $ {変数名

                     インデックスが定義されている{$アレイ名[インデックス]}は、インデックスの値が指定された対応する確認することです

                     $ {名前} $列0のデフォルトの呼び出し配列インデックス=値(最高書きません)

                     {$配列名[*]}または{$配列名[@]}アレイコールのすべての値

       演習:

                     /Var/log/*.log統計行数、インデックスファイルの偶数であると

                      トイレ-l /var/log/*.log

                      A =(は/ var / log / *。ログ)

                      -Iライン= 0を宣言

                      宣言-I合計= 0

                      合計= 0

                            I {0..7}にするため、行います

                                   もし[$ [$ I%2] -eq 0]

                                          ライン= `トイレ-l $ {[$ i]は} | -d「」-f1`をカット

                                          合計=合計+ $ライン

                                   されます

                            完了

                            エコー$和

 

配列arrayの長さを呼び出します。

         変数名$ {#[*]}または{#$変数名[@]}

特別な方法値の配列を追加します。

         $ {変数名[$ {#変数名[@]}]} = "値" 変数または$ {名[$ {#変数名[*]}]} = "値"

他の操作の配列について:

スライス配列:$ {変数名[@]:オフセット:削除する必要がある値の数}

A =(は/ var / log / *。ログ)

                                   エコー$ {[*]:2:4}

                          $ {変数名[@]:オフセット}

解除$ {変数名[インデックス]}:値の配列を削除します

                          削除インデックスが削除されていないと、インデックスの値です。

                          [インデックスを表示する方法、価値を知っていますか?]

変更されたカバレッジ:値を変更します。

                          [3] [3] = 2、C =

演習:

 

  1. 10は、乱数、最大印刷の特徴値を生成します

#!/ binに/ bashの

-aa宣言

-i最大を宣言= 0

 

私のseq 0 9` `中のため、やります

        [$ i]を= $ RANDOM

        [$ {[$ i]は} -gtの$最大] &&最大= $ {[$ i]は}

完了

$ {[@]}エコー

$ maxのエコー  

  1. そして、ランダムに生成された数十人を並べ替え
  2.  

 

文字列:

       printf関数---フォーマットされた出力

       NAME = zqq高い= 180 

Pythonのプリント(%sは、%d)は%(名前、高いです)

プレースホルダ----%sの%D%F

文字列のプレースホルダの幅を指定%[数字]の

% - [NUM]の左指定

 

左アライメント%の-10sを表します

%20dの20文字が右に揃え

小数点以下の桁代表した後、%-10.1f

printfの "%-10s%-10s%-10s \ n" はありません名前身長

printfの "%-10s%-10s%-10D \ n" は1 zqq 180

printfの "%-10s%-10s%-10D \ n" は2 QQQ 190

printfの "%-10s%-10s%-10f \ n" は3 WWW 188.11

文字列のセクション:

       スライス配列:$ {変数名[]:オフセット:値の数}

       スライスの文字列:$ {変数名:オフセット:値の数} - タンジェント

                              $ {変数名: - 値の数} - 反切スペースコロンの後に

                              $ {変数名:-word} - 意味のデフォルトの割り当て

                                   「sasasa」のテストを読んで

                                   [-z $試験] &&テスト= 123

モードに基づいて部分文字列を取ります:

       右から左へ

       $ {テスト#パターン}された最初の文字列にマッチするパターンを削除します

       $ {テストパターン##}がすべての文字列を削除するためのパターンと一致します

       [ルート@ localhostの〜]#A = 123qwe123wsx

[ルート@ localhostの〜]#B = $ {#* 1} -------- 1を除去しました

[ルート@ localhostの〜]#エコー$ bの

23qwe123wsx

[ルート@ localhostの〜]#Aを=は/ var / log /アナコンダ/ anaconda.log / 16.sh

#1 B = {## * /} $ [ルート@ localhostのは〜]

[ルート@ localhostの〜]#エコー$ bの

16.sh

       [ルート@ localhostの〜]#Aを=は/ var / log /アナコンダ/ anaconda.log / 16.sh

[ルート@ localhostの〜]#B =の$ {#1 * /}

[ルート@ localhostの〜]#エコー$ bの

VAR /ログ/アナコンダ/ anaconda.log / 16.sh

[ルート@ localhostの〜]#のURL =のhttp://192.168.72.100:8080

[ルート@ localhostの〜]#bの= $ {URL ## *:}

[ルート@ localhostの〜]#エコー$ bの

8080

左から右へ

$ {変数名%パターン}

$ {変数名%%パターン}

[ルート@ localhostの〜]#のURL =のhttp://192.168.72.100:8080

[ルート@ localhostのは〜]#は、$エコー{URLの%を:*}

http://192.168.72.100

[ルート@ localhostのは〜]#は、{%% URLを:*} $をエコー

HTTP

[ルート@ localhostの〜]#のURL =のhttp://192.168.72.100:8080

[ルート@ localhostの〜]#URL1 = $ {URLの#* //}

[ルート@ localhostの〜]#URL2 = $ {URL1%:*}

[ルート@ localhostの〜]#エコーの$ URL2

192.168.72.100

文字の置換:

       $ {文字列変数名/パターン/交換}

       第1のパターンマッチングは、[、]正規表現パターンにより置換されていないワイルドカードファイルであります

       [ルート@ localhostの〜]#のURL =のhttp://192.168.72.100:8080

[ルート@ localhostのは〜]#は、{URL / 192.168 / 10.6} $をエコー

http://10.6.72.100:8080

[ルート@ localhostの〜]#のURL =のhttp://192.168.72.100:8080

[ルート@ localhostのは〜]#は$エコー{URL / [1-9] *。*。*。* [0-9] /www.baidu.com}

http://www.baidu.com

$ {変数名//パターン/置換文字列}

すべてのパターンの試合、と交換してください

$ {文字列変数名/#パターン/交換}

パターンは最初の行でなければなりません指定します

[ルート@ localhostの〜]#のA = `猫/ etc / passwdファイル| grepをroot`

[ルート@ localhostの〜]#エコーの$ A

ルートX:0:0:ルート:/ルート:/ binに/ bashのオペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN

[ルート@ localhostのは〜]#は、$ {/#ルート/ルーターを}エコー

ルーターX:0:0:ルート:/ルート:/ binに/ bashのオペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN

[ルート@ localhostが〜]#は、$ {/#のR ?? T /ルーターを}エコー

ルーターX:0:0:ルート:/ルート:/ binに/ bashのオペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN

#は、$ {/ \ / binに\ / bashを// sbinに\ / nologinにする}エコー[ルート@ localhostの〜]

ルートX:0:0:ルート:/ルート:/ sbinに/ NOLOGINオペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN

$ {文字列変数名/%パターン/交換}

行の最後には、パターンの前に交換する必要があります指定します

[ルート@ localhostの〜]#のA = `猫/ etc / passwdファイル| grepをroot`

#は、$ {/%\ /?binに\ / * / AAAを}エコー[ルート@ localhostの〜]

ルートX:0:0:ルート:/ルート:/ binに/ bashのオペレータX:11:0:演算子:/ルート:AAA

[ルート@ localhostの〜]#エコーの$ A

ルートX:0:0:ルート:/ルート:/ binに/ bashのオペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN

/交換しないセパレータ、(#%、他の特殊文字を、異なるSED)

検索と削除

       交換、置換文字列が指定されていない場合、削除されなければなりません

       $ {変数名/パターン}

       [ルート@ localhostの〜]#のA = `猫/ etc / passwdファイル| grepをroot`

[ルート@ localhostの〜]#エコーの$ A

ルートX:0:0:ルート:/ルート:/ binに/ bashのオペレータX:11:0:演算子:/ルート:/ sbinに/ NOLOGIN

#は$ {/%演算子* nを/}エコー[ルート@を〜ローカルホスト]

ルート:X:0:0:ルート:/ルート:/ binに/ bashの

$ {変数名//パターン}

$ {変数名/#パターン}

$ {変数名/%パターン}

ケースを交換してください:

       TRの交換用ケース

       TR [[下部:]] [[:アッパー:] <ファイル名

       $ {変数名} --- ^^資本を交換します

       {,,} $ ----置き換え変数名を小文字

TRの[下部:] [:アッパー:</ etc / passwdファイル

       [ルート@ localhostの〜]#A = $(猫/ etc / passwdファイル|ヘッド-1)

[ルート@ localhostの〜]#エコーの$ A

ルート:X:0:0:ルート:/ルート:/ binに/ bashの

[ルート@ localhostのは〜]#は、$ {^^}をエコー

ROOT:X:0:0:ROOT:/ ROOT:/ BIN / BASH

= $ {^^} B [ルート@ localhostの〜]#

[ルート@ localhostの〜]#エコー$ bの

ROOT:X:0:0:ROOT:/ ROOT:/ BIN / BASH

[ルート@ localhostのは〜]#は、{,, B} $をエコー

ルート:X:0:0:ルート:/ルート:/ binに/ bashの

変数の割り当て:

       1変数名= $ {変数名2:-word}スペースはありません!

       アクションのデフォルト値ではなく、変数2つの値、変数ワード1に割り当てられたデフォルト値を入力します。

       [ルート@ localhostの〜]#エコー$ bの

ROOT:X:0:0:ROOT:/ ROOT:/ BIN / BASH

[ルート@ localhostの〜]#C = $ {B:-qaz}

[ルート@ localhostの〜]#エコー$ bの

ROOT:X:0:0:ROOT:/ ROOT:/ BIN / BASH

[ルート@ localhostの〜]#エコーの$ C

ROOT:X:0:0:ROOT:/ ROOT:/ BIN / BASH

[ルート@ localhostの〜]#電子= $ {F:-qaz}

[ルート@ localhostの〜]#エコーの$ F

      

[ルート@ localhostの〜]#エコー$電子

ガス

       1つの$ {変数名=変数名2:+ワード}珍しいです

       変数値の場合には2、変数1に割り当てられた唯一の単語のデフォルト値

       [ルート@ localhostの〜]#hを= 1

[ルート@ localhostの〜]#エコー$ hを

1

[ルート@ localhostの〜]#G = $ {H:+のQQQ}

[ルート@ localhostの〜]#エコー$ gを

QQQ

[ルート@ localhostの〜]#エコー$ hを

1

$ {変数2 =ワード}

       変数に値がない場合は、それはワード変数に代入される値、使用の元の値を持っています

1変数名= $ {変数2:?ERROR_INFO}

       変数の値は、出力誤差2でない場合error_infor

スクリプトは、達成するためにファイルにどのように他の変数を参照しますか?

       ファイル名1

       Vimのファイル名1

              A = 1

              B = 2

       :WQ

       Vimのfilename1.sh

              ./完全パス/ファイル名れるソース/フルパス/ファイル名

              C = $ [$ +する$ B]

              エコー$ C

バッシュfilename1.sh

演習:

       変更されたホスト名、hastnameファイル名を定義する= xxxは、hostname.sh

 

二つのコマンド:

       mktempのは一時的なファイルやディレクトリを作成するためにtemp-- / tmpに

                      あなたは、重複したファイル名を避けるために取得します。mktempの名前.XXXXXX(XXは、乱数、ランダムな文字と数字を表します)

                            デフォルトでは、ランダムなファイルを作成することです

                     -dは、ランダムにディレクトリを作成しています

                     ファイル= `mktempのa.XXX`

       コピーをインストールし、削除したファイルは、同じCPを使用します

                     長所:あなたは、ファイルをコピーする権限を指定することができます

                     使用方法:ディレクトリにファイルをコピーした//ディレクトリのファイルb bをintall、初期パーミッション(ファイルディレクトリ755 644)を復元取引所にディレクトリを作成するには、-dソースプロジェクトは、パーミッション(マスク)を指定-m -t -o -g指定されたグループが属します所有グループを指定します。

 

演習:

 

LDDすべて表示ライブラリプログラム

ディレクトリを作成します

       chrootのスイッチングシステムのルート

       / - は/ dev / sda1を

       元のオペレーティングシステムのシェルプログラムは、1に新しいディレクトリに切り替え、その後、このディレクトリに必要な適切なブートプログラムファイルを配置します。

 

コマンドのフルパスを削除する方法

--- lddはライブラリの読み方

ターゲットディレクトリにLDDライブラリファイルによって読み出さコピーする方法

       どんなに上書きする必要がありますか

拡張:

              仮想化の準備ができて知識:システムの原理を開始

                     読取システム - ディスクをお読みください。事前にドライバディスクをロードする必要があること

                     仮想ルート(IMG仮想ルートファイルRAMディスク)をマウント

                     仮想ルートファイル後にディスクドライブをロードgrub1.5にハングアップします。

アッパーディスク上のRAMディスクへのchrootの一時的な「ルート」スイッチにより、

              オペレーティングシステム:vmlinuzをカーネル、ramdisk.img

 

 

 

おすすめ

転載: www.cnblogs.com/KAJIA1/p/11392374.html