變量賦值
爲variable assignment的語法是:
name=value
請注意,=
標誌周圍沒有空格。
name='value with spaces or special characters'
或與variable expansion雙引號:
name="stringA $variable stringB"
如果報價丟失,第二個字的值如果該值有空格或特殊字符,應使用單引號標註部分被解釋爲一個命令。實際上,這是一種將環境變量傳遞給命令的方式(見下文)。
如果缺少值,則會創建一個空值的變量。
環境變量
還有另一種語法,允許分配的環境變量的命令:
nameA=valueA nameB=valueB nameC=valueC command arguments
的名稱 - 值對與空格字符分隔。
例
LD_PRELOAD=/path/to/my/malloc.so /bin/ls
命令調用/bin/ls
之前LD_PRELOAD
環境變量分配給。
你的命令
因此,你的命令:
projectName= echo $tempPBXProjFilePath
實際上意味着你叫echo
命令與參數expanded從$tempPBXProjFilePath
,並設置projectName
環境變量爲空值。
而這個命令:
projectName=echo $tempPBXProjFilePath
套projectName
環境變量echo
字符串,並呼籲從$tempPBXProjFilePath
可變擴展的命令。
注意,如果一個變量沒有用雙引號括起來,那麼它的值中出現的特殊字符將被shell解釋。爲了防止重新解釋特殊字符,您應該使用弱引用:"$variable"
。如果要防止字符串值中的變量擴展,請使用單引號:'some value'
。
謝謝,這真的很有幫助。 – Tepmnthar
偉大的總結,魯斯蘭!我爲你的文章添加了更多內容。希望你喜歡。 – codeforester