Visit Our UNIX and Linux User Community


Error while deleting a file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Error while deleting a file
# 1  
Old 10-22-2007
Error while deleting a file

Hi,
I want to delete the files under a particular path automatically. TO implement it i have written a script. The following is the script,

#!/bin/ksh
DM_DBA=/apps/user/dba
cd $DM_DBA

test=/apps/user/dba
if [ ! -d $test ] ; then
echo "\n $0: Fatal error: missing directory $test \n"
exit 1
else
echo "directory exist"
fi

testfile= $test/test.log
if [ -f $testfile ]
then
echo "\n ***** test.log file exist ***************\n"
rm $testfile
echo "\n ****** after deletion ****************\n"
fi

echo "\n *************** after if loop ****************\n"

When i execute the above script, the following is the output,

directory exist
deletefile.ksh[16]: /apps/documentum/cdrom/apps/buildcd/test.out: cannot execute
*************** test.log file exist ****************
usage: rm [-fiRr] file ...
*************** after deletion ****************
*************** after if loop ****************



Can anyone please tell me what is wrong in my code? Why does it says the error ,

/apps/documentum/cdrom/apps/buildcd/test.out: cannot execute
and
usage: rm [-fiRr] file ...

Please help me on this........

Thanks in advance
# 2  
Old 10-22-2007
There are several problems:

1) "test" is a unix commando. Better do not use "test" as the name for a variable, command, etc. Name it "foo" "bar" or anything else, it will spare you some strange effects.

2) You are working in the Korn shell and should NOT use "echo" as a means to produce output. Use the built-in "print". Your usage of "echo" will not cause any immediate problems, but is not good programming style.

3) There is a typo in one of your declarations:

testfile= $test/test.log

The space-char after the "=" is wrong. Perhaps this is leading to subsequent problems when expandig the variable. Find it out by issuing "print - \"$testfile\"" immediately before the rm-statement. It will give you the value of $testfile surrounded by double quotes, so will be able to see if there are nonprinting characters.

And, just because it fits in here: if you issue some command with variables as arguments make sure the variables get expanded the way you intended them to be expanded:

print $foo

looks innocent enough. As long as $foo expand to something like "bar" everything is fine, but how about this:

foo="-u3 bar"
print $foo

now the shell expands this to "print -u3 bar" and is not placing output to the screen as before but to I/O-channel 3 which probably points to nowhere. This is why i use always "print -" instead of "print", because the hyphen tells the print-command that everything following it is to be printed and not an option. For other commands there are similar security-devices on could (and should) employ.

bakunin
# 3  
Old 10-22-2007
Hi bakunin,

As you have specified the space-char after the "=" is wrong. I have corrected the space and changed the variable "test" to some other variable name and executed the script.
For eg, logfile=$logdir/test.log

Now the script is working fine and i can able to delete the file without any errors.

Thanks for all your help!!
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #104
Difficulty: Easy
Unix is a family of multitasking, portable, multi-user computer operating systems, which do not have time-sharing capability.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error while moving files and deleting

Team i am trying to delete files which are older than 1 day from 1 path (assuming already files are existed ) . From another path we are trying to move files .like below .While executing this i m getting this error . mv: cannot stat `/backup/db_backups/FULL/*': No such file or directory ... (3 Replies)
Discussion started by: rocking77
3 Replies

2. Shell Programming and Scripting

sed command throwing error while deleting a line from a file

Hi all, I ahve a program which has to delete a line in a file... if i run the sed command through shell prompt it works fine. But if run it using code its throwing error. May i know where i am doing wrong. the file has 3 lines # cat /root/.ssh/known_hosts... (4 Replies)
Discussion started by: vivek d r
4 Replies

3. UNIX for Dummies Questions & Answers

Deleting file basing on the timestamp substring in the file name

Hello, I have in my backup folder, files with names convention like this : randomFileNames_13-02-2014_23h13m09+1392333189 randomFileNames_14-02-2014_02h13m09+1392343989 randomFileNames_14-02-2014_04h13m09+1392351189 etc.... Base on timestamp at end of the filename, I would to delete all the... (7 Replies)
Discussion started by: thuyetti
7 Replies

4. UNIX for Dummies Questions & Answers

Deleting a pattern in UNIX without deleting the entire line

Hi I have a file: r58778.3|SOURCES={KEY=f665931a...,fw,221-705}|ERRORS={16_1:T,30_1:T,56_1:C,57_1:T,59_1:A,101_1:A,115:-,158_1:C,186_1:A,204:-,271_1:T,305:-,350_1:C,368_1:G,442_1:C,472_1:G,477_1:A}|SOURCE_1="Contig_1092402550638"(f665931a359e36cea0976db191ff60ff09cc816e) I want to retain... (15 Replies)
Discussion started by: Alyaa
15 Replies

5. Shell Programming and Scripting

Deleting file name

I need a way to remove all the file names with they are extension from a line of a document. For example: I have doc named "gara" with the following content: /media/gogo/6651-FEAB/Desktop/Desktop.jpg /media/gogo/6651-FEAB/Desktop.pdf /media/gogo/6651-FEAB/linux/logo1.jpg... (4 Replies)
Discussion started by: gogok_bg
4 Replies

6. Shell Programming and Scripting

awk - writing matching pattern to a new file and deleting it from the current file

Hello , I have comma delimited file with over 20 fileds that i need to do some validations on. I have to check if certain fields are null and then write the line containing the null field into a new file and then delete the line from the current file. Can someone tell me how i could go... (2 Replies)
Discussion started by: goddevil
2 Replies

7. Shell Programming and Scripting

Deleting the Last value from a file

How do i use SED command to replace the last existance of ',' with a blank value OR CUT can also do?? Eg --> aaa,aaad,fsdfde, I want to replace it with aaa,aaad,fsdfde Thanks in Advance (7 Replies)
Discussion started by: theeights
7 Replies

8. UNIX for Dummies Questions & Answers

Help deleting a file

Hi and apologies but I'm normally a windows and network admin but atm I'm looking after a unix system while the admin is on holiday. I was assured everything would be fine but he's only been gone for 2 days and already webmail has stopped working! It suggests that there is no space left: ... (2 Replies)
Discussion started by: shirtee
2 Replies

9. Shell Programming and Scripting

Deleting lines inside a file without opening the file

Hi, Just consider there are around 10 lines in a file. Now is it possible to delete the first 2 lines in the file without opening the file. No matter whatever the content of the file is, I just wanna delete the first 2 lines without opening the file. Is that possible? If so, please help me out.... (3 Replies)
Discussion started by: toms
3 Replies

Featured Tech Videos