I can't get what I'm doing wrong!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting I can't get what I'm doing wrong!
# 22  
Old 07-18-2012
Quote:
Originally Posted by kitay
My code:
Code:
#/bin/bash
echo "Test script"
read cake
if [ "$cake" == "1" ]
then
    echo "cake it is"
fi

I run it using "sudo sh test.sh"
Quote:
Originally Posted by 244an
I gets the same error if I run it in bin/sh, and I think he have missed the "!" after "#", hasn't he
Code:
#/bin/bash

in the first line so it perhaps isn't running bash
You are right about the ! oversight. But, even if it were there, it wouldn't be used. The shebang, #!/bin/bash, is only relevant when the script file itself is executed (the execve system call provides this service). In this case, sudo is explicitly exec-ing sh.

I am not an Ubuntu user, but, I seem to recall reading that, due to poor performance, sh was changed from bash to dash to speed up the boot process. I think it may also be the default shell for the root user (although bash is still used by non-privileged users).

Regards,
Alister

Last edited by alister; 07-18-2012 at 01:20 AM..
# 23  
Old 07-18-2012
Well spotted @244an and @alister.

@kitay
1) First, please edit the script to fill in the missing exclamation mark on the shebang line:
Code:
#!/bin/bash
echo "Test script"
read cake
if [ "$cake" == "1" ]
then
    echo "cake it is"
fi

2) Please try running the script as
Code:
./scriptname

3) If for some reason you have to use sudo sh test.sh then it would appear that whatever Shell corresponds to sh does not support the bash double equals sign, then try agan with a single equals sign because as @alister rightly advises, the shebang line would be ignored:
Code:
#!/bin/bash
echo "Test script"
read cake
if [ "$cake" = "1" ]
then
    echo "cake it is"
fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Why result is wrong here ? whether break statement is wrong ?

Hi ! all I am just trying to check range in my datafile pls tell me why its resulting wrong admin@IEEE:~/Desktop$ cat test.txt 0 28.4 5 28.4 10 28.4 15 28.5 20 28.5 25 28.6 30 28.6 35 28.7 40 28.7 45 28.7 50 28.8 55 28.8 60 28.8 65 28.1... (2 Replies)
Discussion started by: Akshay Hegde
2 Replies

2. UNIX for Advanced & Expert Users

What am I doing wrong here?

I am working on a simple login ID check shell script that should prompt for a user ID then check to see if this user is logged on. Trying to get the hang of this stuff so I am thinking of my own little projects. #! /bin/sh echo "please enter a user name" read user if user=$user then... (3 Replies)
Discussion started by: jsk319342
3 Replies

3. UNIX for Dummies Questions & Answers

What is wrong in here ???

]#PATH=/usr/bin:/etc:/bin:/boot/grub:/boot/grup/bin: /boot/solaris/bin:/sbin:/usr/openwin/bin:/usr/5bin://usr/X11/bin:/usr/apache/bin:/usr/apache2/bin:/usr/appserver/bin:... (9 Replies)
Discussion started by: microbot
9 Replies

4. Shell Programming and Scripting

what I m doing wrong?

when user select option 2 nothing happen.for testing purpose I put echo command but is not executing . basically when user prompt for option 2,I want to get list of database name from user separeted by space (TEST DEVL) and put into the file seprated by new line TEST DEVL after that stay on... (1 Reply)
Discussion started by: okreporthai
1 Replies

5. UNIX for Dummies Questions & Answers

what is wrong with this tr -d?

here is my command in bash shell on Mac OS X tiger: history | tr -d emacs here is what I get: hitory | grp "" | tr -d "" hitory | grp "" | tr -d """" hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d '' hitory | grp "" | tr -d... (3 Replies)
Discussion started by: cleansing_flame
3 Replies

6. UNIX for Dummies Questions & Answers

What am I doing wrong?

I really just mess around in UNIX, for the most part, when I want to get something done. I can usually piece things together by searching for brief how-to's on Google, but the syntax errors in my following .sh file are really confusing me. I've got lots of programming experience in other places, so... (7 Replies)
Discussion started by: demonpants
7 Replies

7. UNIX for Dummies Questions & Answers

what is wrong here

Hello, I have a simple script such as ----------------------------- #! /bin/sh YEAR=`date -u +%Y`; MONTH=`date -u +%m`; DAY=`date -u +%d`; DATE=$MONTH$DAY$YEAR LOGFILES=auditTrail-$DATE LOGMATCH=$LOGFILES\* ARGUM='' # find all files and write them to a file find . -name... (7 Replies)
Discussion started by: arushunter
7 Replies

8. Shell Programming and Scripting

Anything wrong with this

Does anyone see anything wrong with this. #getInfraFiles() #{ # cd Infra/$DAY # rm * # /usr/bin/ftp -i -n $LINE << cmd # user "$USER" "$PASSWD" # cd $INFRAPATH # binary # mget * # bye #} besides that its commented out (4 Replies)
Discussion started by: rcunn87
4 Replies

9. UNIX for Dummies Questions & Answers

Please tell me what do I do wrong here!

#!/usr/bin/csh # DAY=`date +%y%m%d` H=`date +%H` M=`date +%M` mailx -s "$H-Myfile" email@email.com</home/mydir/myfile Thanks! (4 Replies)
Discussion started by: bobo
4 Replies

10. UNIX for Advanced & Expert Users

What am I doing wrong

When I execute following shell script I am getting the following error syntax error at line 50 : `<<' unmatched What am I doing wrong :confused: Script begins here ---------------- MPAN_FILE=$1 exec 3<$MPAN_FILE ... (2 Replies)
Discussion started by: guptan
2 Replies
Login or Register to Ask a Question