反引號與$()中的反斜槓要特別注意

2020-08-14 11:06:36

在程式中經常會遇到將linux命令執行結果賦值給變數的情況,但是碰到反斜槓時要特別注意,推薦使用$()

[root@node0xa1 /]# strtest="\1\2\3\4"
[root@node0xa1 /]# result=`echo $strtest|awk -F"\\" '{print $2}'`  
bash: command substitution: line 1: unexpected EOF while looking for matching `"'
bash: command substitution: line 2: syntax error: unexpected end of file
[root@node0xa1 /]# result=$(echo $strtest|awk -F"\\" '{print $2}')
[root@node0xa1 /]# echo $result
1

[root@node0xa1 /]# result=`echo $strtest|awk -F'\' '{print $2}'`
[root@node0xa1 /]# echo $result
1
[root@node0xa1 /]# result=$(echo $strtest|awk -F'\' '{print $2}')
[root@node0xa1 /]# echo $result
1