Checking the existence of a file..


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking the existence of a file..
# 1  
Old 06-12-2007
Checking the existence of a file..

Hi,

I am trying to check for the existence of a file using the 'test' and the file existence options.
When trying to check for a file with a space in between e.g 'Team List', it gives the following error.

learn1: line 3: test: `Team: binary operator expected

I am pasting my code below as well:

echo "Please enter a file name"
read fname
if test -f $fname
then
echo "$fname exists"
else
echo "$fname doesnot exist"
fi


Can someone help me with this...

Regards,
Indra
# 2  
Old 06-12-2007
use double quotes around variable

Try using double quotes around your variable that holds the file name.

Code:
»if test -f "$filename"; then
©:echo "success"
©:else
©:echo "failure"
©:fi
success

# 3  
Old 06-12-2007
Hi Gabe,

can you also explain how would the double quotes make the difference.

Regards,
Indra
# 4  
Old 06-12-2007
Indra,
Try using " (double quote) before and after $fname:
Code:
echo "Please enter a file name"
read fname
if test -f "$fname""
then
  echo "$fname exists"
else
  echo "$fname doesnot exist"
fi

# 5  
Old 06-12-2007
Space is one of the default input field seperators.
So, if you just use $fname then that's 2 arguments for test and hence doesn't work.
"$fname" is just 1 argument.
# 6  
Old 06-12-2007
solfreak is on the money with this one.

If you consider that the test command is looking for a single argument, and then you provide it with a list, then it will only test the first item in that list.

So, I created a test script named "test.ksh". Here it is:
Code:
#! /usr/bin/ksh

echo "enter a file name: \c"
read filename

if test -f "${filename}"; then
   echo "Success: ${filename}"
   else
     echo "Failure: ${filename}"
fi

I also created a file in the same directory named "one two.txt".

Code:
»ls
one two.txt  test.ksh
»test.ksh 
enter a file name: one two.txt
Success: one two.txt

Then I changed test.ksh to remove the double quotes around the variable "filename":
Code:
#! /usr/bin/ksh

echo "enter a file name: \c"
read filename

if test -f ${filename}; then
   echo "Success: ${filename}"
   else
     echo "Failure: ${filename}"
fi

I ran this in an identical manner as before:

Code:
»test.ksh
enter a file name: one two.txt
Failure: one two.txt

I believe that this is due to the way that the test function works. When presented with a list of words separated by spaces, it tests the first item in that list (in this case, part of a filename), but if that list of words is surrounded by double quotes, then it is viewed as a single argument, and the test is then successful.

hth,
gabe
# 7  
Old 06-13-2007
MySQL

Thanks everyone for helping me with this.

Thanks & regards,
Indra
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command script for checking a file existence

Hello, I have a directory where sometimes appear a certain file name - and I'd like to be notified by email when that happens... so what command or script I may use? e.g. if there's a file named "adam" in the directory named "dir1" then send a mail to "abc@abc.com".. it needs to permanently... (5 Replies)
Discussion started by: netrom
5 Replies

2. Shell Programming and Scripting

Checking for the file existence

Hi, I have written a script to validate the data file by referreing to the configurtion file. And moving the validated good records and bad records into HDFS. Suppose after 15 mins if i receive one more data fie,then after validation the good and bad records shold be stored in hadoop with the... (8 Replies)
Discussion started by: shree11
8 Replies

3. Shell Programming and Scripting

Checking file existence along with condition

Hi am trying to write a script which find the existence of a file from a find command output and perform a task if the file exists. Help me out with the correct syntax . Am trying with the following one but unable to get the output. if then <some tasks> else echo "file not exists" fi (5 Replies)
Discussion started by: rogerben
5 Replies

4. Shell Programming and Scripting

Checking existence of file using awk

Hi, I need to check whether a particular file exists ot not using awk. Can anyone help me please? For Example:script that i am using: awk '{filename =$NF; rc=(system("test -r filename")) print $rc;}' "$1" is not working. Here I am passing a text file as input whose last word contains a... (6 Replies)
Discussion started by: manish007
6 Replies

5. Shell Programming and Scripting

checking the file existence using ssh

Hi Can any body say me the reason for below error ssh -o 'StrictHostKeyChecking no' user@client ' && print "1"' I am getting error as "Missing ]":wall: (6 Replies)
Discussion started by: ramesh12621
6 Replies

6. Shell Programming and Scripting

Checking the existence of a file before getting last modified

Hi, I am trying to check the existence of a file, from a list of possible filenames: status-A status-B status-C before retrieving the last modified datetime using ls, I want to check it exists or ls will throw an error. So I have tried this: if ; then ls status-* fi But the if... (3 Replies)
Discussion started by: LostInTheWoods
3 Replies

7. Shell Programming and Scripting

Multiple file existence and checking file size

I want to check the files in particular directory are more that 0 Bytes i.e, Non zero byte file. The script should print a msg if all the files in that directory are empty( 0 Byte). (2 Replies)
Discussion started by: lathish
2 Replies

8. Shell Programming and Scripting

Checking Multiple file existence

Hi, I want to check multiple files exist or not in a single if statement in korn Shell:confused:. Please help me Thanks (1 Reply)
Discussion started by: lathish
1 Replies

9. Shell Programming and Scripting

Checking for existence of a flat file in UNIX !

Hi All, I have a requirement where in i need to check for existence of a file and later execute some pmcmd commands related to informatica. I tried many ways but was unsuccessful could you please throw some light. Below are the sample codes i wrote. Example 1: #!/bin/ksh... (4 Replies)
Discussion started by: Ariean
4 Replies

10. Shell Programming and Scripting

checking file existence

Hi, My requirement was to check the existence of a file having a specified pattern.The way i tried to achieve this was if ; then echo "File found" fi an example file having this pattern was 'ilvs_trace01.0124'. it will vary... (3 Replies)
Discussion started by: DILEEP410
3 Replies
Login or Register to Ask a Question