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!
# 1  
Old 07-17-2012
Question I can't get what I'm doing wrong!

I am making a shell script that will have "shortcuts" to do different tasks and I can't get what I'm doing wrong (this is just a test script)

Code:
read cake
if [ $cake == "1" ] then
echo "1 it is"
fi

it outputs:
Code:
1:
: bad variable namecake
test.sh: 27: test.sh: Syntax error: end of file unexpected (expecting "then")


Last edited by methyl; 07-17-2012 at 08:20 PM.. Reason: please use code tags
# 2  
Old 07-17-2012
Code:
read cake
[[ "${cake}" == "1" ]] && echo "1 it is"

# 3  
Old 07-17-2012
Perhaps just missing a ; (semi-colon) after ]?

Code:
if [ ... ]; then

edit: and as pointed out by huaihaizi3, you should add quotes around "$cake"
# 4  
Old 07-17-2012
First impression: Missing newline before "then", no quotes round "$cake".

Code:
read cake
if [ "$cake" == "1" ]
then
    echo "1 it is"
fi

Please post what Operating System you are running and what Shell you use.
The syntax posted suggests that the Shell is bash.
The error message is still a bit weird. Was this script definitely created with a unix editor (not Windows notepad).
# 5  
Old 07-17-2012
I've just deleted about 20 posts from this thread. It's going nowhere.

Please post the ACTUAL script - NOT a sample. Please post the exact details of your operating system (vendor, version, release), and shell (default and active). Also include details of any input- and output-files. Everything relevant to your question.
# 6  
Old 07-17-2012
@Scott I think that most of it was in the deleted posts. It was Ubuntu Server the Shell was bash.

Where I left off after the mystery of an error on line 29 when there were not 29 lines in the script: I don't believe that your ./test.sh executed what you think it did.

Please post the output from:
Code:
wc -l test.sh        # Count the number of line in the script (parameter is "ell" not "one")

sed -n l test.sh     # Contents of the script making all control codes visible (parameter is "ell" not "one")

alias                # List of aliases - just in case test.sh is an alias


Last edited by methyl; 07-17-2012 at 10:12 PM.. Reason: layout and request aliases
# 7  
Old 07-17-2012
Question The real deal

I am trying to make a script where I can early execute commands, edit stuff etc...
example:
I type the letter 1, it does something
I type 2, it does something different

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"

it outputs:
Code:
marius@ubuntuserver:~$ sudo sh test.sh
Test script
1
: bad variable nameake
test.sh: 8: test.sh: Syntax error: end of file unexpected (expecting "then")

I made the script in the nano editor and saved as DOS

OS: Ubuntu server 12.04
SHELL version: PID TTY TIME CMD
1761 ttys001 0:00.00 -bash
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