Csh script with Undefined variable error

 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support Csh script with Undefined variable error
# 1  
Old 06-12-2012
Csh script with Undefined variable error

hi there

I have this C shell script that was migrated from AIX to Linux, could someone please help me, I checked the syntax numerous times but I can't find out where the error is. The script is meant to find files older than 27 days and delete it

Code:
#!/usr/bin/csh
#

LOGFILE=/Mailbox/Control/bin/printers/log/`date +%d``hostname`prt.log

#
# Check if logfile exists
#
{
if [ \! -f $LOGFILE ]; then
    find `dirname $LOGFILE` -name '*'`hostname`prt.log -mtime +27 -exec rm {} \;
fi
} >/dev/null 2>/dev/null

Error after running script:
Code:
up1as00:/Mailbox/Control/bin/printers # ./sunprint.sh
LOGFILE=/Mailbox/Control/bin/printers/log/12up1as00prt.log: Command not found.
{: Command not found.
LOGFILE: Undefined variable.

I created a dummy file but the error persists

Code:
up1as00:/Mailbox/Control/bin/printers # ls -ld /Mailbox/Control/bin/printers/log/12up1as00prt.log
-rw-r--r-- 1 root root 0 Jun 12 11:15 /Mailbox/Control/bin/printers/log/12up1as00prt.log

Am I missing something here? (in terms of syntaxing?)

Last edited by hedkandi; 06-12-2012 at 12:28 AM.. Reason: grammar
# 2  
Old 06-12-2012
It is not a csh script, but a sh script, so the shebang is wrong. My guess is, it has always been executed as sh /path/to/script, in which case the shebang is treated as comment and is disregarded.. Try with #!/bin/sh
These 2 Users Gave Thanks to Scrutinizer For This Post:
# 3  
Old 06-12-2012
solved

@Scrutinizer, thanks alot, that fixed it!
# 4  
Old 06-12-2012
Not sure since I don't use the 'csh' shell, but try this:
Code:
#!/usr/bin/csh
#
set LOGFILE="/Mailbox/Control/bin/printers/log/`date +%d``hostname`prt.log"

#
# Check if logfile exists, if log file does not exist then find other log files older than 27 days and remove them.
#
if ( ! -f $LOGFILE ) then
  find `dirname $LOGFILE` -name "*`hostname`prt.log" -mtime +27 -exec rm -f {} \;
fi

# 5  
Old 06-12-2012
Hi spacebar

I am getting this error

Code:
up1as00:/tmp # ./a.sh
fi: Command not found.

---------- Post updated at 02:24 PM ---------- Previous update was at 01:59 PM ----------

@Scrutinizer, I realise you are right, SAP is using sh /dir/dir/xxx.sh to run the script

Another question, does "set -x" work in Linux?

I have another 500++ lines of script and thats also giving me the same error, tho this time I used sh /dir/dir/script.sh to run it and its calling #!/usr/bin/sh

Code:
 # /Mailbox/Control/bin/printers/sendsapftp.sh: line 65: set: -
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]

[1]+  Exit 2                  sh /Mailbox/Control/bin/printers/sendsapftp.sh

Ill paste whats in lines stated in the error message:

Code:
set -x

I am suppose to get a file produced out of this, a printer list.txt which of course isn't generated
# 6  
Old 06-12-2012
It should, what is in sendsapftp.sh around line 65?
# 7  
Old 06-12-2012
Code:
# GLOBAL Variables
#
set -x

TRANS=/Mailbox/Control/bin

#PATH=.:/export/home/p01adm:/usr/sap/P01/SYS/exe/run:/oracle/P01/bin:/usr/bin:.:/usr/ccs/bin:/usr/ucb

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Undefined variable error

I am getting the error undefined variable even after following these steps #read name abcd #echo $name na: undefined variable (6 Replies)
Discussion started by: Vishawdeep
6 Replies

2. Ubuntu

error LD: undefined variable while changing shell from bash to csh

Hi, i am a beginner in ubuntu. my default shell is bash. everytime i try to change the shell with command "csh", i get a message (probably an error message). after i get into c-shell, when i try to execute a c shellscript, then it showed the same message. any idea about what is this about or any... (1 Reply)
Discussion started by: Avinash Nayak
1 Replies

3. Shell Programming and Scripting

script help Undefined /illegal variable using cat

Hello group, Still fairly new at the whole scripting thing so be gentle. I'm trying to write a simple script that archives my log files into a master log broken into weeks of the year. My script runs fine up till the "cat" lines which I get a undefined or illegal variable name error. But... (2 Replies)
Discussion started by: dpreviti
2 Replies

4. Shell Programming and Scripting

Undefined variable and command not found

Below script cuts date part from the date entered by the user. #!/bin/csh echo 'Enter date in the format dd/mm/yyyy' read DATE DD=`echo $DATE | cut -c1-2` echo $DD; when debug with -x option , it works perfectly but without -x doesnot.:confused: $ sh -x unix_12.sh + echo Enter... (2 Replies)
Discussion started by: hiten.r.chauhan
2 Replies

5. Shell Programming and Scripting

Undefined variable error in csh script

Below csh script gives error: Undefined variable:confused: #!/bin/csh $QUERY="netscape"; COUNT_NETSCAPE=${ps | grep -c $QUERY}; echo $COUNT_NETSCAPE; when run gives error adroit:/home/seo/hitendra 64 ] ./unix_6.sh QUERY: Undefined variable. What is the root cause of the... (3 Replies)
Discussion started by: hiten.r.chauhan
3 Replies

6. Shell Programming and Scripting

Undefined variable in mv script

Hello, #this script renames schematic file for model year change #my = model year prefix my="lsd" for i in 'ls lsb*' do old=$i new='echo $i | cut - c4 - c30' mv $i $my$new end i: Undefined variable What am I missing or doing wrong? (6 Replies)
Discussion started by: dtrescott
6 Replies

7. Shell Programming and Scripting

How to pass enviroment variable from csh to Informix sql script

Hello, I have a csh script that creates an environment variable. I want to pass the environment variable(CURR_TABLE_DATE) to an Informix sql script. Here is the csh: #!/bin/csh -f setenv INFORMIXSERVER market3_tcp setenv CURR_TABLE_DATE 20090714 set DATABASE = gm_cdr set SQL_DIR =... (0 Replies)
Discussion started by: jwoj
0 Replies

8. Shell Programming and Scripting

In a csh script, can I set a variable to the result of an SQLPLUS select query?

Can someone tell me why I'm getting error when I try to run this? #!/bin/csh -f source ~/.cshrc # set SQLPLUS = ${ORACLE_HOME}/bin/sqlplus # set count=`$SQLPLUS -s ${DB_LOGIN} << END select count(1) from put_groups where group_name='PC' and description='EOD_EVENT' and serial_number=1;... (7 Replies)
Discussion started by: gregrobinsonhd
7 Replies

9. Shell Programming and Scripting

undefined variable error

Hi all, Im using a script which contains read command.. the script works perfectly but when I alias the script it gave "undifined variable" after I enter the read command input (variable)... Does any one know why ? (4 Replies)
Discussion started by: yahyaaa
4 Replies

10. UNIX for Dummies Questions & Answers

Prompting for Input - Getting Undefined Variable

#!/bin/csh -f echo "Enter MEUPS User Id :-" read UID echo "You entered $UID" --------------------------------------- Whn executed, I get an error message "UID: Undefined variable" (1 Reply)
Discussion started by: Kartheg
1 Replies
Login or Register to Ask a Question