Error code with if statement


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Error code with if statement
# 1  
Old 11-29-2018
Error code with if statement

hello all


im new to unix and when i use below script i get an error :


Code:
#! /bin/bash
Echo -e "enter the name of the file : \c"
read file_name
if [ -e $file_name ]
then
echo "$file_name found"
else
echo "$file_name not found"
fi


running the script i get below error :

Code:
$ ./hello
': not a valid identifiere : ./hello: line 3: read: `file_name
./hello: line 11: syntax error: unexpected end of file

ibrahims@N-5CG613336K ~
$

wish if you can help , thanks
Moderator's Comments:
Mod Comment Please use CODE tags when displaying sample input, sample output, and code segments.

Last edited by Neo; 12-02-2018 at 04:01 AM..
# 2  
Old 11-29-2018
Hi,
Can you give resultat of command:
Code:
cat -A hello

Because I think that your file is not a unix file but a dos file



Regards.
# 3  
Old 11-29-2018
In which editor did you originally write the code?

The script runs fine for me but when I write it in a text editor like OpenOffice and then paste it into vi then I get a problem similar to the one you describe.

And indeed, the command cat -A hello then shows all kind of characters that don't belong there.
# 4  
Old 11-29-2018
This line

Code:
': not a valid identifiere : ./hello: line 3: read: `file_name

is a strong indicator you have a <CR> (= ^M = 0x0D = \r) char in your file name.
This User Gave Thanks to RudiC For This Post:
# 5  
Old 11-29-2018
When typing this line into OpenOffice and pasting it into vi this is exactly what I get using cat -A (while all looks just fine in vi):

Code:
echo -e M-bM-^@M-^\enter the name of the file : \cM-bM-^@M-^]$

The capital E in Echo at the beginning also suggests the presence of a commercial text editor.
# 6  
Old 11-29-2018
I would like to point out a few other issues that seem to not be causing errors just yet:-
  • The opening line of #! /bin/bash should be #!/bin/bash without the space.
  • The line starting Echo would probably cause an error unless you have a script, alias or function called Echo where i suspect you really want echo, all lower case. This could suggest autocorrect in your editor. You are better coding in something plain like Notepad, Vi or Emacs
  • When testing the input file name, you should really quote the string. The user could type spaces, nothing at all or even the string duff -o : which might still say the file exists even if it doesn't. You should use if [ -e "${file_name}" ] to eliminate these issues


I hope that these pointers help longer term.



Kind regards,
Robin
# 7  
Old 12-01-2018
hello

thanks for your replies, here are the feedback you asked for :

1- i am using Cygwin on my windows 7 machine.
2- i am using visual studio 2010

Code:
$ cat -A hello
#!/bin/bash^M$
echo -e "enter the name of the file : \c"^M$
read file_name^M$
if [ -e $file_name ]^M$
then^M$
echo "$file_name found"^M$
else^M$
echo "$file_name not found"^M$
end^M$
^M$

ibrahims@N-5CG613336K ~

3- i removed the space as suggested but it has no impact on the result, same error i am getting

thanks

--- Post updated at 06:52 PM ---

Hello , thanks but unfortunately i am just new and i dont understand what you said Smilie , kindly explain more what shall id o

--- Post updated at 07:51 PM ---

just a small comment , i tried using vi editor now and it works , i dont know why then it does not work when i use visual studio, any advises ?

Moderator's Comments:
Mod Comment edit ba bakunin: Please use CODE-tags for code, data and terminal output like the ones i edited in for you. Thank you.

Last edited by bakunin; 12-01-2018 at 04:50 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Does this statement of code mean.....

Good morning, I am 100% mew to Unix and am trying to troubleshoot why a pgm written 3 years ago, suddenly is not working properly. It is part Perl with some UNIX commands thrown in. I need to verify what the UNIX commands are doing before I can continue with my other troubleshooting. print... (7 Replies)
Discussion started by: jaacmmason
7 Replies

2. Shell Programming and Scripting

Error in if statement

I am working on script for stale nfs. the file consists of cat data01stale.log - - - - /abcd/backup - - - - /abcd/data Script (16 Replies)
Discussion started by: nareshkumar522
16 Replies

3. UNIX for Dummies Questions & Answers

How to use a return code in an if statement?

Hi all, After so many tries and searching online for ideas, I had trouble accomplishing this. Is it possible to do something like this in KSH to run an if statement on a return code? Unfortunately the code below fails... Would anyone know how to fix the below attempt? if "$`{pkginfo... (3 Replies)
Discussion started by: chatguy
3 Replies

4. UNIX for Dummies Questions & Answers

if statement code syntax

Hi, can someone please tell me what is wrong with this code? I just want it to check if the file size is greater than 2000kb. if Thanks! ---------- Post updated at 09:23 PM ---------- Previous update was at 09:21 PM ---------- I should probably post the full code: #!/bin/sh... (9 Replies)
Discussion started by: Bengel
9 Replies

5. UNIX for Dummies Questions & Answers

error in if statement

Hi, This is my script to catch any oracle errors. In this, the $sqlerr returns ORA-01017: invalid username/password; logon denied when i specify wrong username/password the if condition is failing. how can i resolve the issue. the if statement gives error sqloutput=`sqlplus -s -L... (1 Reply)
Discussion started by: Swapna173
1 Replies

6. Shell Programming and Scripting

Error in IF statement

HI i am getting error while executing the given statement for filename in `cat a/file.lst` do if then echo "Exit Code Description :File $filename - is missing in Input Directory" >a.log exit else count1=`awk 'END {print NR}' $filename` echo "$count1">>a.log count2=`awk 'END {print... (4 Replies)
Discussion started by: ravi214u
4 Replies

7. Linux

error in if statement

Hi , I am getting an error when I run the script for checking word "view" in a file . I am using if statement. like this if then VW_VAR=` cat $TN.${ecmdate}.sql1 | grep -i view | awk '{print $3}' | cut -d '.' -f2 ` echo " VW_$VW_VAR " sed -e... (16 Replies)
Discussion started by: capri_drm
16 Replies

8. Shell Programming and Scripting

Snytax error on If Statement--help

year=`date '+%Y'` month=`date '+%m'` day=`date '+%d'` day=`expr $day - 1` case $month in 1 | 3 | 5 | 7 | 8 | 10 | 12);; if($day =7 ); then $day=6 fi 4 | 6 | 9 | 11);; if ; then $day=31 fi 2);; if ; then if ; then (2 Replies)
Discussion started by: dannyd_y
2 Replies

9. Shell Programming and Scripting

Error with if statement..Please help

:b:hi, I have a script as given below: pr_det="1" if then awk ' BEGIN {printf("%23s","session")}' >> report.txt awk ' BEGIN {printf "\n"} ' >> report.txt else awk ' BEGIN {printf("%55s","file_dsc")} ' >> report.txt awk ' BEGIN {printf("%101s","no_recs")} '... (1 Reply)
Discussion started by: jisha
1 Replies

10. Shell Programming and Scripting

Code checking for all values in the same if statement.

I am trying to set up a variable based on the name of the file. function script_name { if then job_name='MONITOR' return job_name; elsif then job_name='VERSION' return job_name fi } for i in `ls *log` do script_name $i done. (4 Replies)
Discussion started by: oracle8
4 Replies
Login or Register to Ask a Question