Hvordan kalder man en funktion fra et Linux web-CGI-script?
Jeg har to CGI scripts med den samme funktion: logmsg. I det første script fungerer log-funktionen fint. I det andet script kan jeg ikke få log-funktionen til at skrive i log-filen.Følgende script (testlog.cgi) virker fint. Det skriver i logfilen, når jeg kører det fra en Linux command prompt:
#!/bin/bash
LOG_FILE=$(date +"%Y%m%dlog.txt")
LOG_TIME=$(date +"[%Y %m %d %T]")
function logmsg {
echo "$LOG_TIME ${*}" >> $HOME/log/${LOG_FILE}
}
echo "testlog"
echo ${LOG_FILE}
echo ${LOG_TIME}
logmsg "testlog"
Det andet script (testhtml.cgi) skriver pænt nok i mit Firefox browser-vindue, når jeg kalder det fra Firefox. Men skriver *ikke* noget i log-filen. Hvorfor ikke?!?
#!/bin/bash
LOG_FILE=$(date +"%Y%m%dlog.txt")
LOG_TIME=$(date +"[%Y %m %d %T]")
function logmsg {
echo "$LOG_TIME ${*}" >> $HOME/log/${LOG_FILE}
}
logmsg "testhtml.cgi"
echo 'Content-type: text/html'
echo ''
echo '<html><head><title>Test of testhtml.cgi</title></head><body>'
echo 'testhtml.cgi'
echo '</body>'
echo '</html>'
exit 0
Jeg mistænker $HOME for at være synderen.
Måske $HOME ikke er den samme i de to eksempler, selvom de to scripts ligge i samme katalog på linux-serveren.
MEN, jeg kan kun finde ud af at skrive $HOME ud i testlog.cgi
Jeg kan ikke finde ud af at skrive $HOME ud i testhtml.cgi
Det er den rene elendighed...
Hjælp!!
Med venlig hilsen
Allan