我試圖運行Apache啓動腳本,/etc/init.d/httpd
。像這樣的一個環境變量的定義給出錯誤:這個shell腳本語法有什麼問題?
CONF_FILE=$(APACHE_HOME)/conf/httpd.conf
它說"/etc/init.d/httpd: line 15: APACHE_HOME: command not found"
所以,我換成大括號,括號,和腳本順順當當工作。是什麼賦予了?我真的只是問這個問題,因爲我想明白爲什麼這是錯的,而不是如何解決它。 shebang在那裏,而且它從原始的shell腳本中沒有修改過,所以它爲什麼會誤解事物?
爲什麼要括號?離開它們 – DonCallisto
'$(foo)'嘗試運行'foo'作爲命令,並替換該命令的輸出。 APACHE_HOME不是一個命令。 –
'$()'是命令插值,'$ {}'是變量替換 –