/ Forside / Teknologi / Hardware / Mac / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Mac
#NavnPoint
UlrikB 4810
kipros 1675
Klaudi 1010
myg 920
pifo 907
Stouenberg 838
molokyle 830
Bille1948 815
rotw 760
10  EXTERMINA.. 750
Undefined variable (csh/tcsh)
Fra : david


Dato : 07-01-06 00:16

Jag har ett problem med unix-delen av mitt Mac OS X som jag inte riktigt
kan sätta fingret på. Symptomen är att cron och rsync inte fungerar
tillförlitligt.

Om jag börjar med cron så har jag ett script som körs en gång i veckan
som renderar en massa e-post om att det inte fått som det skulle.
Relevanta delar av breven jag får:

---header---
Subject: Cron <david@localhost> $HOME/bin/guard_check_cron.sh
X-Cron-Env: <term=VT100>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/Users/david>X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=david>
X-Cron-Env: <USER=david>


---body---

csh: TERM: Undefined variable.
csh: TERM: Undefined variable.



Jag har bara två rader i min crontab:

term=VT100
0 * 4 * * $HOME/bin/guard_check_cron.sh




När det gäller rsync ser felet ut så här:

% rsync -av --progress --stats --rsh=ssh test burken:/test
Warning: No xauth data; using fake authentication data for X11
forwarding.
tcsh: TERM: Undefined variable.
building file list ...
1 file to consider



Så återigen är det samma undefined variable. Jag antar att problemet har
samma orsak, tcsh läser väl alla csh:s initfiler (plus några egna).

Jag har även kollat i

/usr/share/tcsh/examples/aliases

som ju hade något stavfel i 10.2-10.3. Det verkar dock vara fixat
numera, jag extraherade en orörd sådan från min Tiger-DVD och den var
både identisk med min befintliga (diff:ade filerna) och såg precis ut
som det föreslås på
<http://www.macosxhints.com/article.php?story=20020828090619956>


Jag har också definierat TERM_PROGRAM i min ~/.MacOSX/environment.plist:

<key>TERM_PROGRAM</key>
<string>Apple_Terminal</string>


Vet inte om detta har någon betydelse i sammanhanget.


Någon som vet vad 'undefined variable'-meddelandet beror på och hur jag
blir av med det?

Stort tack på förhand.


--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

 
 
Martin Schyth (09-01-2006)
Kommentar
Fra : Martin Schyth


Dato : 09-01-06 17:41

Hej,

> csh: TERM: Undefined variable.
> csh: TERM: Undefined variable.

Disse kommer op fordi din TERM shell variablek ikke er sat, dvs. den ved
ikke hvilken tyerminalemulering du benytter.

Prøv at skrive:

# env | grep TERM

i din terminal, den kommer sikkert ikke ud med en variabel som hedder
TERM. Den nemme metude er i dit shellscript at starte med:

#!/usr/bin/csh

TERM='xterm-color'

....

På en unix vil man også kunne gå ind i /etc/profile og tilføje:

export TERM='xterm-color'

Men jeg ved faktisk ikke om osx parser denne fil på samme måde som en
unix.

/Martin


david (17-01-2006)
Kommentar
Fra : david


Dato : 17-01-06 10:23

Problemet var att jag gjorde ett test i min ~/.tcshrc :

if ("$TERM" == "xterm" ) then
source ~/.login
endif

det vill säga, jag testade mot $TERM utan att kolla om den
överhuvudtaget var satt. Funkar bättre så här:


if ($?TERM) then
if ("$TERM" == "xterm" ) then
source ~/.login
endif
endif


--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste