Ben
Ben

Reputation: 62384

Can't get bash script to run, getting errors

I'm trying to run the script found here: http://blog.sebflipper.co.uk/2010/03/10/mysql-backup-as-separate-sql-files-with-rotation/comment-page-1/

bash /path/to/mysql-backup.sh

I'm getting the following errors:

/path/to/mysql-backup.sh: line 2:
: command not found
/path/to/mysql-backup.sh: line 4:
: command not found
/path/to/mysql-backup.sh: line 8:
: command not found
/path/to/mysql-backup.sh: line 10:
: command not found
/path/to/mysql-backup.sh: line 40: syntax error near unexpected token `{
'
/path/to/mysql-backup.sh: line 40: `function checkMysqlUp() {

Am I calling this command improperly?

Ok, it was the spaces, now I'm just getting the last 2 errors

Upvotes: 0

Views: 239

Answers (3)

drysdam
drysdam

Reputation: 8637

#! /bin/bash

This line at the top of the script isn't right. It should have no spaces.

Upvotes: 2

Jonathan Leffler
Jonathan Leffler

Reputation: 753785

Given the way the error messages are appearing, I think you downloaded the script with CRLF line endings and the shell is not liking this.

Use 'dos2unix' or 'dtou' or (if neither of the above is available, tr) to remove the carriage returns.

tr -d '\015' < /path/to/mysql-backup.sh > /path/to/other-mysql-backup.sh

Then try running:

/path/to/other-mysql-backup.sh

Upvotes: 5

Jonathan M
Jonathan M

Reputation: 17451

It's not liking the blank lines in there. Are you sure when you maybe copied and pasted that you didn't inject ^M (carriage returns) or some other white-space character in there?

Upvotes: 1

Related Questions