私はbashの単一の括弧について疑問に思っていました。サブシェルでコマンドを実行するために使用され、配列を作成するために使用されることは知っていますが、他の目的で使用されていますか?
私の注意を引いたのは、
のようにin変数代入を使用する場合です。var=(hello)
echo $var # hello
bashはエラーなどを生成せず、出力は
と同じです。var=hello
これらの2つの変数の定義は同じですか、それとも違いがありますか?
承認された回答:
あなたの場合、括弧() たとえば、配列定義として使用されます
a=(one two three) # array definition
echo "${a}" # print first element of array a
echo "${a[0]}" # print first element of array a
echo "${a[1]}" # print *second* element of array a
echo "${#a[@]}" # print number of elements in array a
単一の変数を配列に入れると、単一の要素を持つ配列になります。
括弧が他の何かにも使用されているかどうかという他の質問に答えるには: bashには多くの状況があります 他のキャラクターと組み合わせて、次のように使用できます:
- コマンド置換:
$() - プロセス置換:
<()および>() - サブシェル:
(コマンド) - 算術評価:
(()) - 関数定義:
fun(){echo x; } - globのパターンリスト:
?()、*()、+()コード> 、@()、!()(extglobの場合のみ 有効です )