我有一個程序,它給出了一個environement變量讀bash的環境變量
TIME=1328189073
CLIENT[if-modified-since]=Thu, 02 Feb 2012 12:09:40 GMT
HTTP_FILE=/news/rss.xml?edition=uk
HTTP_PORT=80
HTTP_HOST=feeds.bbci.co.uk
HTTP_PROTO=http
CLIENT[host]=feeds.bbci.co.uk
CLIENTID=10
CLIENT[user-agent]=Safari
PWD=/
VERSION=SR.4.2.2.MR.20110523
CLIENT[accept]=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
SHLVL=1
CLIENT[accept-language]=en-gb,en;q=0.5
INTERFACE=192.168.221.196
CLIENT[cache-control]=max-age=0
CLIENT[accept-encoding]=gzip, deflate
HTTP_METHOD=GET
CLIENT[user-agent]
然而,當我試圖訪問這個變量之一,從bash腳本它沒有給出結果
echo ${CLIENT[user-agent]} >> ${LOG}
然而,這個作品
echo ${TIME} ${CLIENTID} ${USERNAME} ${IP} ${HTTP_METHOD} ${HTTP_PROTO} ${HTTP_HOST} ${HTTP_PORT} ${HTTP_FILE} ${SIZE} >> ${LOG}
任何想法爲什麼用戶代理無法顯示?
@FatalError - 實際上這個字符串有兩行。第一個賦值,但第二個缺少賦值操作符,所以它不應該做任何事情。 – rodrigo 2012-02-03 17:53:04
括號'[]'似乎會導致問題。你真的需要他們的名字嗎?我不認爲Bash支持非數字索引的數組。 – ugoren 2012-02-03 18:02:29
是的環境變量是由代理給出的,所以它有括號..我可以讀取所有其他非支架字段罰款.. – krisdigitx 2012-02-03 18:05:32