2016-03-14 51 views
0

我正在經歷幾個BASH腳本。而且我碰到東西就這樣變量賦值期間的意思是什麼

VAR_S=$(dd if=${MY_FILE} bs=16 count=1 skip=1024 iflag=skip_bytes 2>/dev/null | hexdump -e '16/1 "%02x"') 

顯然,可變VAR_S不應該是空的,我試圖環繞此聲明我的頭。 if=${MY_FILE}這裏的意思是什麼。我想弄清楚爲什麼VAR_S在回顯時會返回空。在我看來,if就是一個簡單的變量,賦值爲MY_FILE。在這種情況下,我不理解分配的重要性,爲什麼不使用dd ${MY_FILE}

回答

3

請參見man dd說明:if代表「輸入文件」。這些不是變量賦值,而是參數。變量賦值不能遵循命令。

+0

感謝你能不能也告訴我的差值B/W $()和$ {}。我知道$ {Variable_NAME}輸出變量,但是什麼是$()? –

+0

'$ {var_name}'與'$ var_name'相同。 '$(command)'是「命令替換」(參見'man bash'),它以字符串的形式返回命令的輸出。 – choroba