Hi All, I'm brand new at doing anything linux and would like feedback on this script I'm trying to understand from an example I'm working on.. Oh, running Centos 5.6 Anyhow, I run this bash script: #!/bin/bash # send data to the table in the MySQL database MYSQL='which mysql' if [ $# -ne 4 ] then echo "Usage: mtest4 empid lastname firstname salary" else statement="insert into employees values ($1, '$2','$3', $4)" $MYSQL test << EOF $statement EOF If [ $? -eq 0 ] then echo "Data successfully added" else echo "Problem adding data" fi fi and here is the error I get: [Bobster at localhost ~]$ ./mtest4 5 Johnson John 120000 ./mtest4: line 15: syntax error near unexpected token `then' ./mtest4: line 15: ` then' Thanks in advance for any inputs. Bobster
Possibly an invisible character. Delete the entire line with "then" and re-type it. That error seems odd. On Wed, May 4, 2011 at 12:33 AM, Robert <bobster58 at gmail.com> wrote:> Hi All, > > I'm brand new at doing anything linux and would like feedback on this > script I'm trying to understand from an example I'm working on.. > > Oh, running Centos 5.6 > > Anyhow, I run this bash script: > > #!/bin/bash > # send data to the table in the MySQL database > > MYSQL='which mysql' > > if [ $# -ne 4 ] > then > ? ? ?echo "Usage: mtest4 empid lastname firstname salary" > else > ? ? ?statement="insert into employees values ($1, '$2','$3', $4)" > ? ? ?$MYSQL test << EOF > ? ? ?$statement > EOF > ? ? ?If [ $? -eq 0 ] > ? ? ?then > ? ? ? ? ? echo "Data successfully added" > ? ? ?else > ? ? ? ? ? echo "Problem adding data" > ? ? ?fi > fi > > > and here is the error I get: > > [Bobster at localhost ~]$ ./mtest4 5 Johnson John 120000 > ./mtest4: line 15: syntax error near unexpected token `then' > ./mtest4: line 15: ` ? ? then' > > Thanks in advance for any inputs. > > Bobster > > > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > lists.centos.org/mailman/listinfo/centos >-- Steven Crothers steven.crothers at gmail.com
On Tue, 2011-05-03 at 23:33 -0500, Robert wrote:> MYSQL='which mysql'Also this line should use either backticks or $() command substitution instead: For example: [andrew at savoy ~]$ MYSQL='which mysql' [andrew at savoy ~]$ echo $MYSQL which mysql [andrew at savoy ~]$ MYSQL=$(which mysql) [andrew at savoy ~]$ echo $MYSQL /usr/bin/mysql [andrew at savoy ~]$ MYSQL=`which mysql` [andrew at savoy ~]$ echo $MYSQL /usr/bin/mysql Cheers! -- Andy
On Tue, May 03, 2011 at 11:33:52PM -0500, Robert wrote:> > #!/bin/bash > # send data to the table in the MySQL database > > MYSQL='which mysql'You want "MYSQL=$(which mysql)"> If [ $? -eq 0 ] > then > echo "Data successfully added" > else > echo "Problem adding data" > fi"If" is incorrect. John -- <zu22> Hellow: bears are wonderful animals <zu22> I love bears! <zu22> I want to feed them marshmellows. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <lists.centos.org/pipermail/centos/attachments/20110503/bb175f81/attachment.sig>
On 5/3/11 11:33 PM, Robert wrote:> Hi All, > > I'm brand new at doing anything linux and would like feedback on this > script I'm trying to understand from an example I'm working on.. > > Oh, running Centos 5.6 > > Anyhow, I run this bash script: > > #!/bin/bash > # send data to the table in the MySQL database > > MYSQL='which mysql' > > if [ $# -ne 4 ] > then > echo "Usage: mtest4 empid lastname firstname salary" > else > statement="insert into employees values ($1, '$2','$3', $4)" > $MYSQL test<< EOF > $statement > EOF > If [ $? -eq 0 ] > then > echo "Data successfully added" > else > echo "Problem adding data" > fi > fi > > > and here is the error I get: > > [Bobster at localhost ~]$ ./mtest4 5 Johnson John 120000 > ./mtest4: line 15: syntax error near unexpected token `then' > ./mtest4: line 15: ` then' > > Thanks in advance for any inputs.The If on line 14 should be if (lowercase). -- Les Mikesell lesmikesell at gmail.com