Converting from Linux bash (GNU) to Solaris script syntax errors


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting from Linux bash (GNU) to Solaris script syntax errors
# 8  
Old 05-02-2013
Quote:
Originally Posted by oly_r
One of the worst parts of this is that some commands are working on the cmdline but not in the script. I've verified i'm using the same shell in the #! line as i'm working the command line. This is terribly aggravating.
How is this script being run when not from terminal? Cron or the like? Make sure its PATH is up to par with yours, things run by cron and other such automatic tools get quite minimal PATHs.
# 9  
Old 05-02-2013
Quote:
Originally Posted by Corona688
How is this script being run when not from terminal? Cron or the like? Make sure its PATH is up to par with yours, things run by cron and other such automatic tools get quite minimal PATHs.
Run from command line, ie sh script.sh
# 10  
Old 05-02-2013
Quote:
some commands are working on the cmdline but not in the script.
Could you give an example, not a word description, but a code sample, with code tags. Something like:
Code:
$ ls
aaa bbb

Code:
$ cat test.sh
ls

Code:
$ ./test.sh
hello, hanson44

# 11  
Old 05-03-2013
Quote:
Originally Posted by oly_r
Run from command line, ie sh script.sh
That way, you are invoking /bin/sh, an entirely different shell, and you are bypassing a shebang if it is present in your script. You should run it as bash script.sh ( the same holds true for Linux by the way ) or make the script executable, use a shebang and execute it as /path/to/script.sh.
# 12  
Old 05-03-2013
Quote:
Originally Posted by Scrutinizer
That way, you are invoking /bin/sh, an entirely different shell, and you are bypassing a shebang if it is present in your script. You should run it as bash script.sh ( the same holds true for Linux by the way ) or make the script executable, use a shebang and execute it as /path/to/script.sh.
shebang in all scripts
Code:
#!/bin/bash

CRAP, i just tested using the same test files with the executable now set and several of these now work. I thought the shebang overrode however it was called. I've used sh anyscript.sh for years on my bash scripts. Of course it has been a while since i've been on solaris with any frequency.

Funny thing is my case still doesn't work.
Code:
#!/usr/bin/bash
echo $SHELL

while read myDomain
   do
      myCounter=`cat domain_file.txt |awk '{print $3}'|grep "^$myDomain"|wc -l`
      echo $myCounter
      case $myCounter in
          0) echo "found a 0";;
          1) echo "found a 1";;
          2) echo "found a 2";;
          *) echo "everything else";;
      esac
   done < domains_only.txt

Gets the counts right but everything falls through to the all other entry.

Code:
/bin/bash
7
everything else
3
everything else
4
everything else
1
everything else
....

# 13  
Old 05-03-2013
Hi, using sh script on Linux was also incorrect but your particular distribution may have been more foregiving..

wc -l adds spacing in front of the result, that is why the case statement goes wrong. Try using grep -c instead:
Code:
 ... |grep -c "^$myDomain"

This User Gave Thanks to Scrutinizer For This Post:
# 14  
Old 05-03-2013
Thanks, I really appreciate that. My CentOS and upgraded packages must have been fixing a lot of crap for me.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Need help to upgrade GNU bash in Solaris 10

Hi All, I want upgrade GNU bash in solaris 10. present bash is -bash-3.00$ and I downloaded new bash that is bash 4.4 (correct me if that is wrong). and my server is local zone, hosted on global zone. please help how can i proceed what is the process. I heard that need install first then it... (2 Replies)
Discussion started by: Harish4032
2 Replies

2. Shell Programming and Scripting

Converting macro to bash script

Gents, Please can you help me with this. When column 49 == 2 Before X 4714 14710 69445.00 19257.001 1218 12271 69596.00 19460.00 19478.001 X 4714 14710 69445.00 19257.001 1228 12292 69596.00 19480.00 19480.001 After X 4714 14710 69445.00 19257.001 1218... (1 Reply)
Discussion started by: jiam912
1 Replies

3. Shell Programming and Scripting

Converting awk script from bash to csh

I have the following script set up and working properly in bash. It basically copies a set of lines which match "AS1100002" from one file and replaces the same lines in another file. awk -vN=AS1100002* 'NR==FNR { if($1 ~ N)K=$0; next } { if($1 in K) $0=K; print }' $datadir/file1... (7 Replies)
Discussion started by: ncwxpanther
7 Replies

4. Shell Programming and Scripting

Sed, bash problems migrating from Cray to GNU/Linux

So, I have a series of ASCII files, all named something like mrkxxxxz.tmp (say, mrk1001z.tmp, mrk1002z.tmp, mrk1003z.tmp,...) -- these are .tmp files created by a large simulation program, and each different .tmp file represents a different parameter space used in the simulation). The simulations... (2 Replies)
Discussion started by: johnny_canucl
2 Replies

5. Emergency UNIX and Linux Support

Seek help on shell script syntax errors

I want to delete archivelog files that has been archived and applied from primary database to standby database. This piece of script is working in Linux server. However, I copy it to Unix server with tiny modification. It won't work and generate the error message. I have checked code carefullt... (8 Replies)
Discussion started by: duke0001
8 Replies

6. Programming

Project ideas for GNU/Linux C and BASH development

Hello everyone... I'm trying to find an interesting project to work on for my master thesis. I like GNU/Linux C development and BASH scripting. Please give me any idea that flashes in your mind. I thank you in advance... (3 Replies)
Discussion started by: jonx
3 Replies

7. Shell Programming and Scripting

Solaris bash syntax different from Linux?

I have a script that's meant to check the disk usage on a particular volume and delete the oldest logfile if it's over a certain percentage. It runs fine on a Linux machine, but on a Solaris one, I get this error: diskspace_check.sh: syntax error at line 3: `diskspace=$' unexpected I assume... (2 Replies)
Discussion started by: cara_k
2 Replies

8. Shell Programming and Scripting

linux bash script to sun solaris

Hi guys, I seek a solution for this action for Sun solaris. find /sapmnt/${up}/global -prune -printf "%m %M %u %g %p\n" > $DAT1 The Application/Utilities in Sun Solaris are to old and cant understand "-printf". An update for Application/Utilities is exist, but not possible to implement... (6 Replies)
Discussion started by: ixibits
6 Replies

9. Shell Programming and Scripting

Subtracting time with awk - BASH/Debian GNU Linux

I'm sure this is simple and I've been looking at examples for days on end but can't seem to come to grips with awk. What I have: mplayer -v dvd:// -identify -vo null -ao null -nolirc -nojoystick -frames 0 2>/dev/null >> /tmp/MplayerOut ChapterStart=($(grep CHAPTERS: /tmp/MplayerOut |sed... (3 Replies)
Discussion started by: rickenbacherus
3 Replies

10. Shell Programming and Scripting

Converting bash script to csh

Hi, I'm a beginner in scripting and I recently wrote a bash script that would've worked fine until I realized it needed to be written in csh. Could someone please show me how to correctly change the syntax from bash to csh in this script? Any help will be greatly appreciated. I can provide more... (4 Replies)
Discussion started by: Kweekwom
4 Replies
Login or Register to Ask a Question