Shell script worked correctly until I added variable :(


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script worked correctly until I added variable :(
# 8  
Old 01-22-2015
Quote:
Originally Posted by sea
Try using [ expr ] instead of [[ expr ]].
Just had the same thing when running a script.
OK well that has made a huge difference, I can't test 100% until the POS is back online but it appears to have fixed most of the problem. Now when I run the script I do not see the error any more when I pass a parameter, so the following appear to work correctly:

Code:
./ip full
./ip local

However if I execute the script with no parameters I once again see the error:

Code:
./ip: 7: [: =: unexpected operator
./ip: 17: [: =: unexpected operator

So nearly there, and I can fully test in another hour when the POS comes back online.

---------- Post updated at 03:54 PM ---------- Previous update was at 03:53 PM ----------

Quote:
Originally Posted by vgersh99
did you try original.sh or fixed.sh?
fixed.sh

Last edited by Scrutinizer; 01-22-2015 at 05:55 PM.. Reason: code tags
# 9  
Old 01-22-2015
Was just going to edit, but since its a new page i'll do a new post.

What i've forgotten to add was this, use quotes when checking for empty string.
Code:
[ -z "$1" ] && ...

That way it will not fail if its empty.
The double [[ did stop that message from appearing, but now with single brackets, you need to quote.

hth
These 2 Users Gave Thanks to sea For This Post:
# 10  
Old 01-22-2015
Quote:
Originally Posted by sea
Was just going to edit, but since its a new page i'll do a new post.

What i've forgotten to add was this, use quotes when checking for empty string.
Code:
[ -z "$1" ] && ...

That way it will not fail if its empty.
The double [[ did stop that message from appearing, but now with single brackets, you need to quote.

hth
Well look at that, no more errors!

Thank you very much sea, I'll complete full testing once the POS is online and post up how I go.

Thank you everyone for your help, I really appreciate it.
# 11  
Old 01-22-2015
The only explanation I would have that it is not bash that is being run somehow. The error messsages are not typical of bash. They look more like those of ash or dash to me, which does not understand double square brackets. Probably on that particular system /bin/sh points to ash or dash and that is what gets called somehow, or maybe someone made a symlink from /bin/bash to ash or dash. However, I do not understand how the first script could run OK then..

Last edited by Scrutinizer; 01-22-2015 at 06:14 PM..
# 12  
Old 01-22-2015
Quote:
Originally Posted by Scrutinizer
The only explanation I would have that it is not bash that is being run somehow. The error messsages are not typical of bash. They look more like those of ash or dash to me, which does not understand double square brackets. Probably on that particular system /bin/sh points to ash or dash and that is what gets called somehow, or maybe someone made a symlink from /bin/bash to ash or dash. However, I do not understand how the first script could run OK then..
/bin/sh points to dash.

This is a default raspbian system, running on a raspbery pi. I haven't changed anything really, and /bin/bash is not a symlink so it "should" be running correctly I guess? Is there any way I can check which shell is being called?
# 13  
Old 01-22-2015
Well then for sure dash is being called, the error messages are not bash. How do you call the script?
# 14  
Old 01-22-2015
Quote:
Originally Posted by Scrutinizer
Well then for sure dash is being called, the error messages are not bash. How do you call the script?
Direct from the command line eg. "sudo ./ip full"
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How can I assign awk's variable to shell script's variable?

I have the following script, and I want to assign the output ($10 and $5) from awk to N and L: grdinfo data.grd | awk '{print $10,$5}'| read N L output from gridinfo data.grd is: data.grd 50 100 41 82 -2796 6944 0.016 0.016 3001 2461. where N and L is suppose to be 3001 and 100. I use... (8 Replies)
Discussion started by: geomarine
8 Replies

2. UNIX for Dummies Questions & Answers

Validation to be added in the shell script

I need help with one of my shell script. The script is working fine but i need to add two condition - i need to get rid of all the below ftp messages and need to have only ftp completed or failed message. example when i run the script i get below lines - Connected to xxxx 220 (vsFTPd... (1 Reply)
Discussion started by: chandraprakash
1 Replies

3. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

4. Shell Programming and Scripting

Shell $,/r getting added in echo on variable substitution.

Hi All, I'm trying to run a similar script to copy a files from one location to another. #!/bin/bash source="/home/pradeepk/a.txt" destination="/home/pradeepk/dir1" cp $source $destinationi'm getting following error. cp: cannot stat `/home/pradeepk/a.txt\r': No such file or directorywhen... (1 Reply)
Discussion started by: pradeep2002gs
1 Replies

5. Shell Programming and Scripting

CRON shell script only runs correctly on command line

Hi, I'm new to these forums, and I'm hoping that someone can solve this problem... To make things short: I have DD-wrt set up on a router. I'm trying to run a script in CRON that fetches the daily password from my database using SSH. CRON is set like so(in web interface): * * * *... (4 Replies)
Discussion started by: louieaw
4 Replies

6. Shell Programming and Scripting

Result of the grep is not storred correctly into the variable

I am facing a problem while storring the grep results into a variable. I need to count the occurence of the pattern \, in a file and store that in a variable. I have given the below command p=`grep -c '\\,' filename` But while echoing the variable, i am getting the total number of lines in... (2 Replies)
Discussion started by: renjithv
2 Replies

7. Shell Programming and Scripting

assign awk's variable to shell script's variable?

Dear All, we have a command output which looks like : Total 200 queues in 30000 Kbytes and we're going to get "200" and "30000" for further process. currently, i'm using : numA=echo $OUTPUT | awk '{print $2}' numB=echo $OUTPUT | awk '{print $5}' my question is : can I use just one... (4 Replies)
Discussion started by: tiger2000
4 Replies

8. Shell Programming and Scripting

Shell script not unzipping and copying correctly

Hi, I am trying to unzip a file( $pfile, it contains a couple of files and 4 folders with subfolders and files) and have its contents go into a directory instead of into a folder in that directory (ZZZZ), I have the following script: #Unzip the build unzip -o "$HOME/ZZZZ/$pfile" -d... (2 Replies)
Discussion started by: SlumberMachine
2 Replies

9. Shell Programming and Scripting

Variable not working correctly.

Hi, I have a script where I am trying to set a local variable using the following, MYVAR="$NAME"_"$NAME2".txt where say, NAME = one NAME2 = two so I want the output one_two.txt but what I am getting is, two.txt basically the $NAME2 is overwriting, what am I doing wrong? ... (3 Replies)
Discussion started by: walsh_j
3 Replies

10. Shell Programming and Scripting

Variable with $ do not show correctly

Hey guys i need help i have a script to push a password to a remote server the only problem is the $ENCRYPT variable has $'s in it (from the encrypted password in the shadow file) and they drop out when apending to the shadow file via the usermod command so $1$Q/6a08n$EoAcBuR/YnoCQC shows up as... (3 Replies)
Discussion started by: insania
3 Replies
Login or Register to Ask a Question