Variable
如何在縮進時將字元串值分配給多行的變數?
問題:
- 我需要為一個變數分配一個相當長的值。
- 我腳本的所有行都必須在一定數量的列之下。
所以,我試圖用不止一行來分配它。
沒有縮進很簡單:
VAR="This displays without \ any issues." echo "${VAR}"
結果:
This displays without any issues.
但是有縮進:
VAR="This displays with \ extra spaces." echo "${VAR}"
結果:
This displays with extra spaces.
如果沒有這些空間,我如何優雅地分配它?
這裡的問題是您用雙引號 ("") 將變數括起來。刪除它,一切都會好起來的。
VAR="This displays with \ extra spaces." echo ${VAR}
輸出
This displays with extra spaces.
這裡的問題是雙引號變數會保留所有空白字元。如果您明確需要它,可以使用它。
例如,
$ echo "Hello World ........ ... ...."
將列印
Hello World ........ ... ....
在刪除引號時,它不同
$ echo Hello World ........ ... .... Hello World ........ ... ....
在這裡,Bash 刪除了文本中的額外空格,因為在第一種情況下,整個文本被視為“單個”參數,因此保留了額外的空格。但在第二種情況下,
echo
命令接收文本作為 5 個參數。在將參數傳遞給命令時,引用變數也很有幫助。
在以下命令中,
echo
僅獲取單個參數為"Hello World"
$ variable="Hello World" $ echo "$variable"
但是在以下情況下,
echo
會得到兩個參數Hello
和World
$ variable="Hello World" $ echo $variable