您好,登錄后才能下訂單哦!
這篇文章主要介紹了bash中反引號和$()如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇bash中反引號和$()如何使用文章都會有所收獲,下面我們一起來看看吧。
在bash中,與(反引號)都是用來作命令替換的,命令替換與變量替換差不多,都是用來重組命令行的,先完成引號里的命令行,然后將其結果替換出來,再重組成新的命令行。
反引號的使用方式
下面是一個簡單的實例:
[root@localhost ~]# echo "There are `ls | wc -l` files in this directory"There are 10 files in this directory
ls |wc -l
用于列出和計算當前目錄的文件數,然后將它嵌入到 echo 命令中。
在 shell 腳本中,當然可以執行相同的操作,將ls | wc -l
命令的結果分配給一個變量,稍后使用該變量。
[root@localhost ~]# file_count=`ls | wc -l`[root@localhost ~]# echo "There are $file_count files in this directory"There are 10 files in this directory
$()的使用方式
也可以通過使用$()
代替“`反引號來獲得相同的結果,如下例所示:
[root@localhost ~]# echo "There are $(ls | wc -l) files in this directory"There are 10 files in this directory
下面是一個例子,我需要對網絡連接中的某些問題進行故障排除,因此我決定每分鐘顯示總連接數和等待連接數。
[root@localhost ~]# vim netinfo.sh#!/bin/bashwhile truedo ss -an > netinfo.txt connections_total=$(cat netinfo.txt | wc -l) connections_waiting=$(grep WAIT netinfo.txt | wc -l) printf "$(date +%R) - Total=%6d Waiting=%6d\n" $connections_total $connections_waiting sleep 60done
運行一下腳本:
[root@localhost ~]# ./netinfo.sh17:13 - Total= 158 Waiting= 4 17:14 - Total= 162 Waiting= 0 17:15 - Total= 155 Waiting= 0 17:16 - Total= 155 Waiting= 0 17:17 - Total= 155 Waiting= 0
如何選擇使用哪種方式
這里更推薦使用$()方式。下面是原因: \1. 如果內部命令也使用,
運算符可能會變得混亂。
運算符中嵌套
運算符,則事情將不會按預期工作或根本不起作用。\2. $()
操作符更安全,更可預測。
在 $()
運算符中的內容被視為 shell 腳本。從語法上講,這和把代碼保存在文本文件中是一樣的。
以下是“`和$()
行為差異的一些示例:
[root@localhost ~]# echo '\$x'\$x[root@localhost ~]# echo `echo '\$x'`$x[root@localhost ~]# echo $(echo '\$x')\$x
關于“bash中反引號和$()如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“bash中反引號和$()如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。