Ho un programma che dà fuori una variabile environementlettura variabile d'ambiente 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]
tuttavia quando provo ad accedere a uno di questa variabile da uno script bash non dà risultato
echo ${CLIENT[user-agent]} >> ${LOG}
tuttavia funziona
echo ${TIME} ${CLIENTID} ${USERNAME} ${IP} ${HTTP_METHOD} ${HTTP_PROTO} ${HTTP_HOST} ${HTTP_PORT} ${HTTP_FILE} ${SIZE} >> ${LOG}
qualche idea del perché l'utente-agente non riesce a mostrare?
@FatalError - In realtà ci sono due righe con questa stringa. Il primo assegna un valore, ma al secondo manca l'operatore di assegnazione, quindi non dovrebbe fare nulla. – rodrigo
Le parentesi '[]' sembrano causare il problema. Ne hai davvero bisogno nel nome? Non credo che Bash supporti gli array con un indice non numerico. – ugoren
sì le variabili di ambiente sono date dal proxy, quindi ha le parentesi..può leggere bene tutti gli altri campi non parentesi. – krisdigitx