[ shadow-bg @ 02.03.2009. 09:55 ] @
Kad ovu skriptu izvrsim:

Code:

#!/bin/bash
#

date  >> /srv/www/htdocs/support/promena.log
echo "$1 = $2" >> /srv/www/htdocs/support/promena.log
exec expect -f "$0" ${1+"$@"}
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect "assword:"
send "$password\r"
expect "assword:"
send "$password\r"
expect eof


Prijavi mi:
invalid command name "date"
while executing
"date >> /srv/www/htdocs/support/promena.log"
(file "./promeni" line 4)


Kad pogledam fajl promena.log, on je ispravno upisao i datum i argumente (username i password)
A kad izvrsim ovo:
Code:

#!/bin/bash
#

date  >> /srv/www/htdocs/support/promena.log
echo "$1 = $2" >> /srv/www/htdocs/support/promena.log

Sve prodje bez greske. Nije mi jasno o cemu se radi, totalno sam zbunjen. A skripta je cak odlicno radila jedno 2 nedelje, i sad je pocela da pravi ovaj problem.
[ uranium @ 04.03.2009. 17:26 ] @
Nisam se baš udubljivao ... ali samo prve tri linije komandi su zapravo bash skripta ...
kad se stigne do dela

Code:

exec expect -f "$0" ${1+"$@"}


napustiće se trenutni proces i pokrenuće se expect ( izgleda da ocekuje Tcl komande ) i rećiće mu se da izvrši skriptu u fajlu "$0" a to je nažalost
baš ovaj isti fajl ... i onda kad naleti na date ( verovatno ne postoji ta f-ja u Tcl-u ) dobiješ tu poruku ...

dakle, probaj da premestiš ostatak koda

Code:

set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect "assword:"
send "$password\r"
expect "assword:"
send "$password\r"
expect eof 


u neki odvojeni fajl i onda promeni
poziv ka expect ( znaci iza -f da ide ime tog novog fajla, a ne tekućeg )

[Ovu poruku je menjao uranium dana 04.03.2009. u 18:53 GMT+1]