シェルスクリプトの変数とテスト
5012 ワード
以前のポストでは、シェルスクリプトの基礎を学び、最初のシェルスクリプトを書きました.
この記事では、シェルスクリプトの変数から始めましょう
変数は、名前を持つストレージの場所です.
変数を名前の値ペアとみなします.
変数は、前の変数名で
いいえ、いくつかのケースでは、必要があります.いつ、私はあなたを示す
変数を別の文字列に連結したい場合は、かすかな括弧を使用しなければなりません.
「私は自分のマシンにスクリプトを書いています」と書いておかなければなりません.
コマンドの出力を変数に代入するには
ドントは、 の数字から始めません特殊文字を使用しないでください. にあり得る
さもなければ、あなたが望むように、あなたのものの変数を狂って、名前に変えてください.
スクリプトは、座って、一連のコマンドを走らせる努力を取り替えるために作られます.どのような条件のシナリオに基づいて特定のアクションを実行する場合は?手動でコマンドを入力している場合は、前のコマンドのステータスをチェックして、次のコマンドを書き込みます.
シェルスクリプトでは、テストで同じことを達成することができます.
条件をテストするには、単に角括弧内に条件を置きます.
構文=
例を見てみましょう.
そうでなければ、制御はこのブロックに落ちて、「ファイルは存在しません」メッセージを印刷します.
ファイルが存在する
ファイルが存在し、実行(または検索)が許可されている
我々は、我々が条件とループを調べるとき、我々の次のポストでこれらの旗のより多くの例を調べます.
その時まで.平和✌️
シェルスクリプトの基礎
トゥインクルラハリヤ・ 4月5日・ 2分読む
#shellscripting
#programming
#beginners
この記事では、シェルスクリプトの変数から始めましょう
変数とは
変数は、名前を持つストレージの場所です.
変数を名前の値ペアとみなします.
VARIABLE_NAME="Value"
変数の名前は大文字小文字を区別します.一般的な慣例はすべての大文字で使用することです.さて、どうすればこれらの変数をスクリプトで使うことができますか?
変数は、前の変数名で
$
で使用できます.$<VARIABLE_NAME>
例を見てみましょう.#!/bin/bash
SHELL_NAME="bash"
echo "I am using $SHELL_NAME scripting!"
出力:>./VariablesDemo.sh
I am using bash scripting!
我々は、巻き毛で名前を囲むこともできます${<VARIABLE_NAME>}
その場合、上の例は次のようになります.#!/bin/bash
SHELL_NAME="bash"
echo "I am using ${SHELL_NAME} scripting!"
出力:>./VariablesDemo.sh
I am using bash scripting!
カーリーは必須ですか?
いいえ、いくつかのケースでは、必要があります.いつ、私はあなたを示す
変数を別の文字列に連結したい場合は、かすかな括弧を使用しなければなりません.
「私は自分のマシンにスクリプトを書いています」と書いておかなければなりません.
echo "I am ${SCRIPT}ing on my machine"
あなたが$SCRIPTing
を書くならば、その場合、ストリング242479142が名前となるので、我々はその名前で変数を持っていないので、その場所に何も置かれません.変数へのコマンドの出力の割り当て
コマンドの出力を変数に代入するには
SCRIPTing
を使います.#!/bin/bash
SHELL_NAME="bash"
USER_NAME=$(whoami)
echo "$USER_NAME is using ${SHELL_NAME} scripting!"
出力> ./VariablesExample.sh
twinklekailashlahariya is using bash scripting!
変数命名規則
ドント
$(command)
だけが許容され、任意の場所さもなければ、あなたが望むように、あなたのものの変数を狂って、名前に変えてください.
シェルスクリプトのテスト
スクリプトは、座って、一連のコマンドを走らせる努力を取り替えるために作られます.どのような条件のシナリオに基づいて特定のアクションを実行する場合は?手動でコマンドを入力している場合は、前のコマンドのステータスをチェックして、次のコマンドを書き込みます.
シェルスクリプトでは、テストで同じことを達成することができます.
条件をテストするには、単に角括弧内に条件を置きます.
構文=
_
テストが通過した場合、式は終了ステータス0、すなわちtrueで終了します.例を見てみましょう.
#!/bin/bash
FILENAME=/etc/myFile.txt
if [ -f "$FILENAME" ]
then echo "File exist"
else echo "File does not exist"
fi
出力:> ./TestsExample.sh
File does not exist
ここで何をしているかを見ましょう.[condition-to-test]
:ファイルパスを持つ変数を定義します.FILENAME=/etc/myFile.txt
:ファイルが指定されたパスに存在するかどうかを調べるif条件.if [ -f "#FILENAME" ]
:ファイルが存在し、通常のファイルであれば、[ -f "#FILENAME" ]
が真を返すフラグです.-f
:ファイルが存在する場合、コントロールフローはこの状態に入り、“file exists”メッセージを出力します.そうでなければ、制御はこのブロックに落ちて、「ファイルは存在しません」メッセージを印刷します.
then echo "File exist"
のように、このようなテスト条件があります.else echo "File does not exist"
文字列の長さは0です-f
文字列の長さはゼロです-n STRING
文字列は等しい-z STRING
文字列は等しくないSTRING1 = STRING2
Integer 1はInteger 2と等しいですSTRING1 != STRING2
integer 1は整数2以上であるINTEGER1 -eq INTEGER2
Integer 1はInteger 2より大きいですINTEGER1 -ge INTEGER2
integer 1は整数2以下であるINTEGER1 -gt INTEGER2
Integer 1はInteger 2より小さいですINTEGER1 -le INTEGER2
Integer 1はInteger 2と等しくありませんINTEGER1 -lt INTEGER2
File 1とFile 2は同じデバイスとinode番号を持っていますINTEGER1 -ne INTEGER2
File 1はFile 2より新しい(変更日).FILE1 -ef FILE2
ファイル1はfile 2より古いですFILE1 -nt FILE2
ファイルが存在し、ブロックスペシャルですFILE1 -ot FILE2
ファイルが存在し、キャラクタスペシャルです-b FILE
ファイルが存在し、ディレクトリですファイルが存在する
-c FILE
ファイルが存在し、グループIDが設定されます-d FILE
ファイルは存在して、有効なグループIDによって所有されます-e FILE
ファイルが存在し、シンボリックリンクである( - lと同じ)-g FILE
ファイルが存在し、その粘着ビットがセットされて-G FILE
ファイルが存在し、シンボリックリンクである( - hと同じ)-h FILE
ファイルは存在して、有効なユーザーIDによって所有されます-k FILE
ファイルが存在し、名前付きパイプです-L FILE
ファイルが存在し、読み込み許可が与えられる-O FILE
ファイルは存在して、0より大きいサイズを持ちます-p FILE
ファイルが存在し、ソケットです-r FILE
ファイルが存在し、書き込み許可が与えられるファイルが存在し、実行(または検索)が許可されている
我々は、我々が条件とループを調べるとき、我々の次のポストでこれらの旗のより多くの例を調べます.
その時まで.平和✌️
Reference
この問題について(シェルスクリプトの変数とテスト), 我々は、より多くの情報をここで見つけました https://dev.to/twinklelahariya/variables-and-tests-in-shell-scripting-2k81テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol