Help fixing my database script


 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Help fixing my database script
# 1  
Old 10-23-2013
Help fixing my database script

1. The problem statement, all variables and given/known data:
I need help I get a variant of syntax errors when compiling my script to maintain a database. It's a simple database meant to create/view/maintain vehicles.


2. Relevant commands, code, scripts, algorithms:
my if statements have many syntax errors and I'm lost as to why. One key lines is line 8 my first if statement. Thanks in advance.


3. The attempts at a solution (include all code and scripts):
Code:
#! /bin/bash
# Automobile database

db=arg1
command=arg2
case $db in
    #create:
if [ -f "$db" ]; then
echo "DATABASE EXSISTS"

 if [ $arg3 != "" ]
 echo $arg3 > db

else
echo "Automobile Database" > db
echo "New database created"
fi
  esac

#add

read -p "Make of the car: " make

read -p "Model of the car: " model

read -p "Year of the car: " year

read -p "Color of the car: " color


if $year < 1870 || $year > 2020
echo "Error with $year"
fi
echo "$make, $model, $year, $color" >> db
echo "Successfully added a record to the database"

case $arg3:
 max=$( wc -l db )
 #all:
 cat db

 if $arg4 > $max
 echo "Error"
 fi
 sed -ne "1p;arg4p" db

#range:
if $arg4 > $max || $arg5 > $max || $arg4 > $arg5
error
fi
sed -ne "1p;arg4,arg5p" $db
esac



#delete:
        case $arg3:
        max=$( wc -l db )
      sed -ie '2,$d' db
     single:
     if $arg4 > $max
     echo "error"
     fi

     sed -ie "$arg4d" db


     range:
     if $arg4 > $max || $arg5 > $max || $arg4 > $arg5
           echo "Error"
           fi
     sed -ie "arg4,arg5d" db
esac


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
NIU, dekalb il USA, Ege, CSCI 330

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).
# 2  
Old 10-23-2013
How are you 'compiling' your script? You aren't supposed to compile bash scripts.

Knowing which errors would be helpful if the people helping you don't wish to copy-paste random untested code off the internet into their computer.

I think you're getting a bit ambitious here. Try writing a short script then building more onto it. That way if you get errors, you can at least track down where it begins, instead of ending up with a giant mess that may need wholesale replacement.
# 3  
Old 10-23-2013
Sorry compiling is the wrong term, with all

Sorry compiling is the wrong term, with all of my other comp sci classes it's easy to get like terms confused. I meant running the script on my bash shell with "./". Like I said in my question I'm getting syntax errors in my initial if statement to test whether or not the file is an actual file or not. Thanks in advance.
# 4  
Old 10-23-2013
Quote:
db=arg1
command=arg2
case $db in
#create:
if [ -f "$db" ]; then
echo "DATABASE EXSISTS"

if [ $arg3 != "" ]
echo $arg3 > db
You assign string constants to your variables, so db will hold "arg1", and command will hold "arg2". The script will not reach the if statement, for a) $db will not expand to "'create" b) bash's case syntax is different, it needs a ) and may need ;;. And, a file called "arg1" might not exist either.
This script is very sloppily cobbled together...
# 5  
Old 10-23-2013
At least proof-read your code before you ask - it's not even consistently wrong (or consistently formatted, which would make it a lot easier to read for us, and might help you notice some errors).

A couple of pointers though:
  • That particular if line is actually fine (syntactically, at least), but your case statement is wrong. Look up the correct syntax.
  • You have a whole bunch of missing then and fi in your if statements.
  • I'm not sure if you're expecting the command-line arguments to be in arg1, etc, or those are being set somewhere else, but for shell scripts arguments are in $1, $2, etc.
# 6  
Old 10-23-2013
In addition to what RudiC said, comments can't be used as selections in a case statement.

Your 1st if statement syntax looks OK (except that the if in the then clause is missing both then and fi. All of your other if statements are also missing required bits of the grammar of if statements.

In addition to what Corona688 said, saying that you're getting syntax errors and showing us those syntax errors are two VERY different things. If you want our help, you are much more likely to get it if you help us help you. Show us exactly the diagnostic messages you're getting instead of leaving it to our imaginations.

Since there are so many syntax errors in this relatively short script; try just putting an if statement (and the variable assignments needed to make it work) in a file and debug that script until you figure out how if statements work. Then do the same thing with a case statement. For both if and case statements, print the bash man page on your system and look closely at the syntax for if statements and for case statements. If you have trouble figuring out how to make if statements work or how to make case statements work, we'll be glad to help; but don't expect us to do your homework for you.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help fixing awk code

can someone please help me spot and fix the issue with the following code: awk -F, -v SEARCHPATT="(Wed|Tue)" -v ADDISTR="Mon|Tue|Wed|Thu|Fri|Sat|Sun" -vVF="$VALFOUND" "BEGIN{ {D = D = 1 D = D = 2 } $0 ~ "," VF "," {L = 1 ... (9 Replies)
Discussion started by: SkySmart
9 Replies

2. UNIX for Advanced & Expert Users

Help with fixing screen position

Hey guys, I am trying to make print a pattern with * on a 10*10 two dimensional array in a for loop and I want the incoming 10*10 to overlap the previous 10*10 so that the * look like it is moving. is there a way to fix the screen position? ever time it prints a 10*10 the screen moves. ... (3 Replies)
Discussion started by: amit14august
3 Replies

3. Shell Programming and Scripting

Fixing a shell script

I have this shell script that I wrote to check an input file to see if it is empty or not, and then clean the file from any line that starts with the sign "<" (without quotation marks" and then spell the number of line of the file, and the empty lines, too. The script then will create two output... (11 Replies)
Discussion started by: faizlo
11 Replies

4. AIX

Fixing security problem

Hi I use Rapid 7 to check some servers ( AIX 5.3 ) for security problems. There are 2 problems I don't know to deal with 1. Problem : TCP Sequence Number Approximation Vulnerability Solution : _Enable TCP MD5 Signature 2. Problem : HTTP Basic Authentication Enable Solution : _ Use... (5 Replies)
Discussion started by: bobochacha29
5 Replies

5. Shell Programming and Scripting

help fixing awk statement

awk "BEGIN {if($MessageREAD<$ThresholdW) {print \"OK\" ; exit 0} else if(($MessageREAD>=$ThresholdW) && ($MessageREAD<$ThresholdC)) {print \"WARNING\" ; exit 1}" else if($MessageREAD<=$ThresholdC) {print \"CRITICAL\" ;... (4 Replies)
Discussion started by: SkySmart
4 Replies

6. Shell Programming and Scripting

Fixing the width of a word

Is there a way to fix the width of the word being printed to a file? I am trying to create an output to a file with columns , like a spread sheet. I have used "\t" to adjust the columns but still it does not show well in the file, mainly due to the variable length values in the column so \t does... (1 Reply)
Discussion started by: davidtd
1 Replies

7. Shell Programming and Scripting

Fixing corrupted vcard files.

KDE's Kontact PIM breaks quoted-printable vcard files because it linebreaks in the middle of a word. Take this text for example: NOTE;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=D7=A9=D7=95=D7=A8=D7=94 =D7=A 8=D7=90=D7=A9=D7=95=D7=A0=D7=94.\n=D7=94=D7=A9=D7=95=D7=A8=D7=94 =D7=94=D7= ... (7 Replies)
Discussion started by: dotancohen
7 Replies

8. Linux

fixing with sed

I am trying to replace the value of $f3 but its not working . I don't know what I am missing here . cat dim_copy.20080516.sql | grep -i "create view" | grep -v OPSDM002 | while read f1 f2 f3 f4 f5 f6 f7 f8 f9 do echo " $f3 " sed -e... (13 Replies)
Discussion started by: capri_drm
13 Replies

9. Shell Programming and Scripting

Shell Script: want to insert values in database when update script runs

Hi , I am new to linux and also also to shell scripting. I have one shell script which unpacks .tgz file and install software on machine. When this script runs I want to insert id,filename,description(which will be in readme file),log(which will be in log file) and name of unpacked folder... (1 Reply)
Discussion started by: ring
1 Replies
Login or Register to Ask a Question