この記事では、宣言の使用法について説明します。 bashのコマンドとその使用方法。 宣言 スクリプトに型のような動作を提供するbash組み込みコマンドです。
Javaなどのプログラミング言語の経験がある場合 、 C あなたはシステムのタイプが何であるかを知っているかもしれません。悲しいことに、 bash 強いタイプのシステムはありません。 宣言 コマンドを使用すると、型のような動作を取得したり、変数の属性を設定したりできます。
$ type -a declare declare is a shell builtin
宣言する便利な機能のいくつかを紹介します オファー。開始して宣言について知るのに適した場所 ヘルプコマンドまたはbashマンページのいずれかを使用します。
$ help declare declare: declare [-aAfFgiIlnrtux] [-p] [name[=value] ...] Set variable values and attributes. Declare variables and give them attributes. If no NAMEs are given, display the attributes and values of all variables. Options: -f restrict action or display to function names and definitions -F restrict the display to function names only (plus line number and source file when debugging) -g create global variables when used in a shell function; otherwise ignored -I if creating a local variable, inherit the attributes and value of a variable with the same name at a previous scope -p display the attributes and value of each NAME ...
整数型を宣言する方法
変数を整数型として宣言するには、 -i
を使用します 国旗。以下の例を見ると、変数ageが整数型として宣言されていることがわかります。別のタイプ(文字列)の値を割り当てようとしたとき )「正しいタイプではありません」というエラーが返されることが予想されます。 」ですが、ここではエラー変数をスローする代わりに、ゼロ(0 )として割り当てられます。 )。はい、これは奇妙な振る舞いであり、期待どおりの動作ではありません。
$ declare -i num=10 $ echo $num $ num=string # Reassigning Interger type with string $ echo $num ⇒ Zero will be the output

読み取り専用変数を宣言する方法
読み取り専用 –これはプログラミング用語であり、変数に値が割り当てられ、プログラマーまたはマシンによって変更されることはありません。プログラムのライフサイクル全体を通じて同じです。
変数を一定にするには(読み取り専用 ) -r
を使用します フラグ。
$ declare -r num=10 $ num=11 -bash: no: readonly variable

変数を読み取り専用にする別の方法は、読み取り専用を使用することです。 キーワード。
$ readonly os=ubuntu $ os=arch -bash: os: readonly variable

Linuxでの小文字と大文字の変換
変数をbashに割り当てる場合、 -l </ code>を使用して、変数を小文字から大文字に、またはその逆に変換できます。 (小文字)および
-u
(大文字)フラグ。
$ declare -l name="LINUX" $ declare -u name1="linux" $ echo $name $name1

インデックス付き/連想配列を宣言する方法
Bashは2種類の配列をサポートしています。 インデックス付き 配列と連想 配列。配列を宣言するには、 -a
を使用します (インデックス付き配列)および -A
(連想配列)フラグ。 宣言を使用せずにインデックス付き配列を作成できます コマンドですが、連想配列を作成するには、 -A
を指定してdeclareコマンドを使用する必要があります フラグ。
$ declare -a os_name=(Ubuntu Mint Kubuntu lubuntu Debian) $ echo ${os_name[@]} $ declare -A os_family $ os_family["Redhat"]="Fedora" $ os_family["Arch"]="Manjaro" $ os_family["Debian"]="Ubuntu" $ echo ${os_family[@]}

サブシェルへの変数のエクスポート
bashの使用経験がある場合は、exportコマンドを使用して、スクリプトまたはシェルセッションで宣言された変数をサブシェルにエクスポートする人を見たことがあるかもしれません。 宣言を使用してそれを行うことができます コマンドも。
エクスポートするには、 -x
を使用する必要があります フラグと+x
フラグは属性をエクスポートから削除します。
$ declare -x name=ShellTips $ sh -c “echo $name”

属性が定義されているかどうかを確認する
属性かどうかを確認できます (可変 ) -p
を使用して定義されているかどうか フラグ。
# Defining a variable $ a=10;b=20;c=30 # Check if a variable is defined or not $ declare -p a # single variable check declare -- a="10" $ declare -p a b c # check multiple variables declare -- a="10" declare -- b="20" declare -- c="30"
2つのダッシュが表示されます-
キーワードを宣言した後。これは、 declare -aのような変数のタイプを表示するためのものです。 (配列)、宣言-n (nameref)。何も宣言されていない場合は、-
が表示されます。 。
$ declare -a Iarray $ declare -A arrray $ declare -p Iarray Asarray declare -a Iarray declare -A Asarray
宣言されていない変数を見つけようとすると、次のエラーがスローされます。
$ declare -p Iarray1 -bash: declare: Iarray1: not found

関数定義を確認する方法
-F
を使用できます および-f
関数が宣言されているかどうかと関数定義を確認するためのフラグ。単純なhelloworld関数を作成しています。
$ function hello_world(){ echo "Linux Geeks"; } $ declare -F
関数定義を取得するには、 -f
を使用できます 国旗。関数名が渡されない場合は、ロードされたすべての関数が出力され、リストから関数定義を取得できます。
$ declare -f hello_world $ declare -f

この記事は以上です。すぐに別の興味深い記事を取り上げます。