我有一个程序,它给出了一个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