シェルトレーニングday7 8.21

•[ファイル-f]ファイルが正常であるか否かを判断し、そこに
[-dファイル]を•それがディレクトリであるかどうかを判断し、そこに
[-eファイル]を•ファイルまたはディレクトリの分析が存在する
•[-rファイル]を読めるファイルかどうか
ファイルが書き込み可能であるかどうかを決定するために[-wファイル]●
実行可能なファイルかどうかを決定するために•[-xファイル]

if4.sh [ルート@ドッカシェル]#猫
#!/ binに/ bashのは
F = "を/ tmp / chenxu"
[-f $ F]場合は
、その後
、 "存在" F $エコー
他の
タッチを/ tmp / chenxu
Fiを提供して

若しくは

#!/ binに/ bashの
[-f / tmpに/ chenxu] &&エコー"ファイルが存在します"

-f指不存在
[ルート@]ドッキングウィンドウシェル]#猫if6.sh
#!/ binに/ bashのは
F = "を/ tmp / chenxu"
[もし!-f $のF]
その後、
「存在しない」は、F $をエコー

笑エコー
Fiの

•[-z「$ Aの」場合 ] これは、変数の値が時空あるときに何が起こるかを表している
[「$ Aの」-n場合•は ] の値を表す変数aが空でない場合
•は、grepの-qが「123」 1.TXT;「123」を含む、その後1.TXT行が発生した場合を表す
[!-eファイル];場合•をその後、 ファイルが存在しないときに何が起こるかを表す
(($ <1場合• )); [。$ -LT-1]、その後... IFに相当し、次に...
•[]を使用することができない、<、>、==、=、> =、<=などのシンボル!

[ルート@ドッカシェル]#猫if7.sh
#!/ binに/ bashのは
F =
[-z $ F]場合は
、その後
、 "$ fがnullである"エコー

エコー笑
Fiの

[ルート@ドッカシェル]#猫はif7.sh
#!/ binに/ bashの
N = 'トイレ-lを/ tmp /ラララ'
[$ N -gt 100]であれば
、次に
エコー"> 100"
他に
エコー笑
Fiの

#/ binに/ bashの
[あれば!-f / TMP / lalal]
次に
エコー"/ TMP / lalal存在しません。"
出口
Fiの
N = wc -l /tmp/lalal
[ "$ nを" -Z]であれば
、次に
エコーエラー
出口
のelif [100 -gt $ n]は
、次に
エコー母
Fiの

変数は、コマンドの結果に等しい場合、ライブコマンドを拡大するボタンの横に1を使用します。

-nは、ファイルや変数を決定することができます

[ルート@]ドッキングウィンドウシェル]#[-n if9.sh]の場合、[OK]をエコー; Fiが
OK
[ルート@ドッキングウィンドウシェル]#bの=; [-n "$ bの"]の場合; [OK]をエコー; Fiの
[OK]を
[ルート@]ドッキングウィンドウシェル]#を

User1の解釈があるかどうか
はgrep -w 'USER1'の/ etc / passwdの

[ルート@]ドッキングウィンドウシェル]の/ etc / passwdの'USER1' -w grepの場合は#;その後、 "存在USER1"エコー;他のuseradd user1の-d /ホーム/ USER1; Fiの
[ルート@]ドッキングウィンドウのシェル]#grepのUSER1」-w場合「/ etc / passwdファイル、他のuseradd -d USER1 /ホーム/ USER1; Fi回線、その後"user1が存在するが、"エコー
USER1:X:1000:1001 :: /ホーム/ USER1:/ binに/のbash
user1が存在します

grepの内容を返し、どのようにではない、それを返すように注意?プラスqパラメータ

[ルート@]ドッキングウィンドウシェル]の/ etc / passwdの'USER1' -qw grepの場合は#;その後、 "存在USER1"エコー;他のuseradd user1の-d /ホーム/ USER1; Fi回線
user1が存在し
ます。[root @ドッキングウィンドウシェル]#を

•フォーマットの場合、変数名
をvalue1)
コマンド
;;
値2)
コマンド
;;
*)
commond
;;
ESAC
•、条件にする場合には、プログラムを使用することができます|のような、表現や意味
2 | 3)
コマンド
;;

N:[ルート@]ドッキングウィンドウシェル]#「は入力してください番号」-p読み
を入力してください数:12345
[ルート@ドッカシェル]#エコー$ nの
12345

#!/ binに/ bashが
N: "入力してください番号" -p読む
[ "$ nを" -z]の場合は、
その後、
エコー"を入力してください番号を。"
1番出口
Fi回線
N1 = echo $n|sed 's/[0-9]//g'-----------
あれば[ "$ n1の" -n]
その後、
"番号を入力して下さい。"エコー
出口1
Fiの
[$ N -lt 60] && [$ N -geが0]あれば
、次に
= 1つのタグ
のelif [$ N 60 -Ge] && [$ N -lt 80]
次に
= 2タグ
のelif [$ N 80 -Ge ] && [$ N -lt 90]
次に
= 3タグ
ELIFを[$ N -Ge 90] && [$ N 100] -Le
次に
= 4タグ
他の
タグ= 0
Fiの

場合は$タグ
1)が
「OKでない」エコー
;;
2)
"OK"エコー
;;
3)
"OOKを"エコー
;;
4)
"oook"エコー
;;
*)
「番号の範囲は0〜100です。」エコー
;;
ESAC

$エコー?

データ・ワードが続くの出口は、エコー$?値であり、

[ルート@]ドッキングウィンドウのシェル] test.sh#猫
#/ binに/ bashが!
"番号を入力してください:" -p読んn個
あれば[ "$ nを" -z]
その後、
"を入力してください番号"エコーを
1番出口
Fiの
[ルート@]ドッキングウィンドウシェル]#1のsh test.sh
を入力してください数:
入力してください番号。
[ルート@]ドッキングウィンドウシェル]#エコー$?
1
[ルート@]ドッキングウィンドウシェル]#1のsh test.sh
を入力してください数:10
[ルート@ドッキングウィンドウシェル]#エコー$?
0

forループ

•構文:条件での変数名のため、やる...; DONE
•ケース1
#/ binに/ bashの!
SUM = 0
私は中のためにseq 1 100
行う
SUM = $ [$のSUM + $ i]の
エコー$ iの
DONE
ますecho $ SUMを

[ルート@]ドッキングウィンドウシェル]#猫 for.sh シェルを合計し、私はそのコマンドの結果の後ろに注意し、その次にコマンドをそのキーボックスを使用する
#!/ binに/ bashのは
SUM = 0
私はのためにseq 1 100
行う
SUM = $を[$ $ SUM + I]
DONE
ますecho $ SUM

#!/ binに/ bashのの
CDの/ etc /
にあるがためにls /etc/
行う
場合は、[-d $がA]
そして、
LSは$ -d
Fiの
完了を

[ルート@ドッカーシェル]#タッチ1 2
[ルート@ドッカーシェル]#タッチ3 \ 4.txt
[ルート@ドッカーシェル]#のLS
[ルート@ドッカーシェル]#LSの
1 1.sh 2 3 4.tx

で、私のためにls ./、私は$エコーん;が実行を

区切り文字としてとする搬送スペース

で、私のために[ルート@]ドッキングウィンドウシェル]#はls ./、行われ; $ iのエコーん
1
1.sh
2
3
4.txtを

おすすめ

転載: blog.51cto.com/testdb/2432498