在bash shell中,如何分类(),(()),[],[[]]和{}的用法?

Yua*_*Wen -2 linux bash shell

我是Shell的新手。而且我)用的使用(糊涂一点点,[],{}像shell脚本$()[ [] ]${}等等。我想对它们的用法进行分类,以更有效地学习shell脚本。

fed*_*qui 5

[ ]vs [[ ]]测试运算符
请参阅[和[[在bash中有什么区别?很好地了解它们之间的差异。

$()命令替换

$ echo "my hostname is: $(hostname)"
my hostname is: MYPC
Run Code Online (Sandbox Code Playgroud)

$(( ))算术扩展

$ echo "$(( 5 + 5 ))"
10
Run Code Online (Sandbox Code Playgroud)

${ }
这用于引用变量,并避免混淆其名称。

$ v="hello"
$ echo "$vbye"

$ echo "${v}bye"
hellobye
Run Code Online (Sandbox Code Playgroud)

此外,它还用于引用数组元素:

$ declare -A my_arr
$ my_arr[a]="hello"
$ echo "${my_arr[a]}"
hello
Run Code Online (Sandbox Code Playgroud)

( )并且{ }还用作分组命令

( ) 在子shell中运行:

$ v=5
$ ( v=2; echo "$v" )
2
$ echo "$v"
5
Run Code Online (Sandbox Code Playgroud)

{ list, }没有:

$ v=5
$ { v=2; echo "$v"; }
2
$ echo "$v"
2
Run Code Online (Sandbox Code Playgroud)