Simple if script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simple if script
# 1  
Old 04-08-2014
Simple if script

Hi,

new to unix and scripting, and i'm trying to set up a simple "if" script to create a seperate flag file dependant on success.
So far i have the following ($5 is a variable passed to the script from the backup job)
Code:
if [ '$5' == '0' ]
  then
    touch /u03/backups/backup_ended.flag
else
    touch /u03/backups/backup_failed.flag
fi

I dont have any troubleshooting i can share, as the script can only be started at the end of the backup..

thanks

Rich


Moderator's Comments:
Mod Comment Please use code tags next time for your code and data. Thanks

Last edited by vbe; 04-08-2014 at 10:43 AM.. Reason: code tags
# 2  
Old 04-08-2014
You're using the wrong quotes for this. And, a non-portable comparison. Try:
Code:
if [ "$5" = '0' ]
  then
    touch /u03/backups/backup_ended.flag
else
    touch /u03/backups/backup_failed.flag
fi


Last edited by Don Cragun; 04-08-2014 at 10:45 AM.. Reason: Add another fix.
# 3  
Old 04-08-2014
Welcome...
Remember to always give the shell you are using...( Yes syntax may vary...)
What I dont get is $5... Is it the backup job that calls this script?
# 4  
Old 04-08-2014
its a netbackup bpend_notify script if that helps any?

Code:
at the start it says  
#! /bin/sh

Thanks for the suggestion Don, it didnt work though. I know that the bpend script is being called at the end of the backup as just having a simple "touch filename" create the file.

The variables i'm trying to use are listed as
Code:
 # This script is called by NetBackup when bpbkar is finished doing a
  # backup on the client. It is also called after backing up the files
  # for a user directed archive, but before the files are deleted.
  #
  # This script:
  #       receives 5 parameters: CLIENTNAME POLICYNAME SCHEDNAME SCHEDTYPE STATUS
  #       must be executable by the root user
  #       should exit with 0 upon successful completion


Last edited by Scott; 04-08-2014 at 11:10 AM.. Reason: Code tags
# 5  
Old 04-08-2014
It's double equal to "=="

Code:
if [ "$5" == '0' ]
  then
    touch /u03/backups/backup_ended.flag
else
    touch /u03/backups/backup_failed.flag
fi

or, you can also try this
Code:
if [[ "$5" -eq 0 ]]
  then
    touch /u03/backups/backup_ended.flag
else
    touch /u03/backups/backup_failed.flag
fi

# 6  
Old 04-08-2014
Quote:
Originally Posted by richs24
its a netbackup bpend_notify script if that helps any?

Code:
at the start it says  
#! /bin/sh

Thanks for the suggestion Don, it didnt work though. I know that the bpend script is being called at the end of the backup as just having a simple "touch filename" create the file.

The variables i'm trying to use are listed as
Code:
 # This script is called by NetBackup when bpbkar is finished doing a
  # backup on the client. It is also called after backing up the files
  # for a user directed archive, but before the files are deleted.
  #
  # This script:
  #       receives 5 parameters: CLIENTNAME POLICYNAME SCHEDNAME SCHEDTYPE STATUS
  #       must be executable by the root user
  #       should exit with 0 upon successful completion


Probably this could be the reason you are receiving error message, Don's approach is right, whenever you are asking questions please mention OS, and shell you are using.

Code:
$ cat f
a=0
[ "$a" == '0' ] && echo 'ok'

$ sh f
f: 5: [: 0: unexpected operator

$ bash f
ok

$ cat f1
a=0
# with or without single quote works..
[ "$a" -eq '0' ] && echo 'ok'

$ sh f1
ok

---------- Post updated at 09:03 PM ---------- Previous update was at 08:50 PM ----------

@SriniShoo

Quote:
Originally Posted by SriniShoo
It's double equal to "=="
...
...
if[ "$a" = '0' ]

OR

if[ "$a" == '0' ]


It depends on shell being used, for example

Code:
$ cat f
a=a
[ "$a" = 'a' ] && echo 'ok'
[ "$a" == 'a' ] && echo 'ok'

$ sh f
ok
f: 5: [: a: unexpected operator

$ bash f
ok
ok

# 7  
Old 04-08-2014
if i do an

echo $SHELL

it comes back with

/sbin/sh

if that changes anything?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simple script

I have to pull files from a customers cloud directory to our cloud directory periodically, the customer has the files in the new-version(nver) folder; which I am pulling via a python script. (python nver.py) customers cloud location: s3://custbucket/$nver/files Our cloud location:... (0 Replies)
Discussion started by: ramky79
0 Replies

2. Linux

How to execute a simple select script using a shell script?

Hi team, I have two select statements and need to run them using SYSDBA user select * from temp_temp_seg_usage; select segment_name, tablespace_name, bytes/ (1024*1024) UsedMb from dba_segments where segment_name='TEMP_TEMP_SEG_USAGE'; Need to run this using a shell script say named... (1 Reply)
Discussion started by: pamsy78
1 Replies

3. Shell Programming and Scripting

Help making simple perl or bash script to create a simple matrix

Hello all! This is my first post and I'm very new to programming. I would like help creating a simple perl or bash script that I will be using in my work as a junior bioinformatician. Essentially, I would like to take a tab-delimted or .csv text with 3 columns and write them to a "3D" matrix: ... (16 Replies)
Discussion started by: torchij
16 Replies

4. Shell Programming and Scripting

Simple Script Can u help please?

I have a file that contains these lines User ID Username -------- ---------- 7738626,zrazak 7783535,jvincigu 7805567,ldrennan 7805583,mtsakama I need to sort the names alphabetically How can I sort the lines based on the user names ? I would appreciate a quick reply anyone ... (1 Reply)
Discussion started by: mnassiri
1 Replies

5. Shell Programming and Scripting

Simple Script to do so?

hi guys, i am a noob to shell scripting, and i would like to run a simple script, that could simply do the following: 1. SFTP to a remote server/path...and download the newest *.gz backup file on that server. (there are many *.gz files in that folder, i simply need the latest one) 2. locally... (1 Reply)
Discussion started by: Confidence
1 Replies

6. Shell Programming and Scripting

Simple script

I have a script that will check for integer line by line and if it encounter any blank space will echo it: Below the script: #!/bin/ksh while read i do echo "Value is $i" count=`expr substr "$i" 1 3` echo $count if && then echo "Matched" else echo "Blank Space Found" fi (3 Replies)
Discussion started by: ali560045
3 Replies

7. UNIX for Dummies Questions & Answers

Simple script

I am trying to print my script arguments, but i am stuck at the arrow pointed lines..please help #!/bin/bash echo "Number of arguments $#" count=1 while do echo ${$count} <======================== count = $(expr $count +1) <================== done (4 Replies)
Discussion started by: chvs2000
4 Replies

8. Shell Programming and Scripting

simple script

Hi, I just need a shell script to find out the processes taking longer time...(Unix/Linux) Urgent response needed.. Rajiv (5 Replies)
Discussion started by: rajivn786
5 Replies

9. Shell Programming and Scripting

Simple Script

Here is the script that i am trying to run. I get an error and i can't figure out what is the problem. #!/bin/bash echo "What is your name" read NAME if ; then echo "My name is the same" esle echo "You have a nice name" fi (11 Replies)
Discussion started by: xplod4202
11 Replies

10. UNIX for Dummies Questions & Answers

help with simple script

I need a script that checks to see if ypserv is running, and if not it will restart yp. I have a ypslave that is running Sol9, and the ypsrv daemon is dieing, I want to create a cron job that periodicly checks to see if it's running, and if it see's that it isn't, it will re-start the daemon (1 Reply)
Discussion started by: jdel80
1 Replies
Login or Register to Ask a Question