Bash Shell Script – $() , ${} , $(())

Loading

測試環境為 Ubuntu 16.04 x64

$() , ${} , $(()) 這幾個的用法差別是??

$()

( ) 代表 子 shell 的起始與結束.
$ 表示變數字元.
$(指令) 代表運行命令並將其輸出 (process substitution) ,與 `指令` 是相同的用法.

直接執行指令

root@ubuntu:~# uname -r
4.4.0-75-generic

也可以透過 $(指令)

root@ubuntu:~# version=$(uname -r)
root@ubuntu:~# echo $version
4.4.0-75-generic

也可以直接透過 echo 輸出.

root@ubuntu:~# echo $(uname -r)
4.4.0-75-generic

反單引號( ` ) 是一樣的效果.

root@ubuntu:~# version=`uname -r`
root@ubuntu:~# echo $version
4.4.0-75-generic

${}

$ 同 ${ } 都是表示變數字元.

root@ubuntu:~# version="4.4.0-75-generic"
root@ubuntu:~# echo $version
4.4.0-75-generic
root@ubuntu:~# echo ${version}
4.4.0-75-generic

一般常用 ${ } ,還可以幫 變數做 刪除/取代 字串 https://benjr.tw/96951 與 測試 , 替換 https://benjr.tw/96998 等功能.

$(())

$((計算式))) 主要是用於計算式的.

root@ubuntu:~# echo $((14*6))
84

運算只限於整數,有小數點的不能用這個方式來運算.

root@ubuntu:~# echo $((14.3*6))
-su: 14.3*6: syntax error: invalid arithmetic operator (error token is ".3*6")

需要透過 bc (計算機) 來做.

root@ubuntu:~# echo {14.3*6} |bc
85.8
root@ubuntu:~# echo "14.3*6" |bc
85.8
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料