Sponsored Content
Top Forums Shell Programming and Scripting How to make shell script arguments optional? Post 302586342 by kshji on Sunday 1st of January 2012 04:17:21 AM
Old 01-01-2012
Here is generic solution. Argument order is not fixed and so on.
Code:
usage ()
{
     echo " Usage: $0 -a value -b value -c value [ -d value ]" >&2
     exit 1
}

#####################
a=""
b=""
c=""
d=""
# parse options
while [ $# -gt 0 ]
do
        case "$1" in
                -a) a="$2" ; shift ;;
                -b) b="$2" ; shift ;;
                -c) c="$2" ; shift ;;
                -d) d="$2" ; shift ;;
                --) shift; break ;;
                -*) usage ;;
                *) break ;;  # arguments ...
        esac
        shift
done
# now $* include arguments
[ "$a" = "" ] && usage
[ "$b" = "" ] && usage
[ "$c" = "" ] && usage

if [ "$d" = "" ] ; then
      prog -a "$a" -b "$b" -c "$c" 2>&1 | tee -a ~/"$a".log 
else
     prog -a "$a" -b "$b" -c "$c" -d "$d" 2>&1 | tee -a ~/"$a".log
fi

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to make parameters optional?

Hi, I am trying to call a function inside a shell script. Is there a way in which I can make the parameters options in the call? Please help me with this. Thanks!!! (2 Replies)
Discussion started by: neeto
2 Replies

2. Homework & Coursework Questions

I need to make a script that has 4 command line arguments to function properly.

I have no idea what the following means. The teacher is too advanced for me to understand fully. We literally went from running a few commands over the last few months to starting shell scripting. I am not a programmer, I am more hardware oriented. I wish I knew what this question was asking... (3 Replies)
Discussion started by: Wookard
3 Replies

3. Shell Programming and Scripting

How to make 2 separate arguments in 1 bash script?

This is what I have: #!/bin/bash #ascript.sh WORD1=`tail -n +$1 /home/gscn/word1.txt | head -1` sed -e "s/WORD1/$WORD1/g" < /home/gscn/configtmp > /home/gscn/config WORD2=`tail -n +$1 /home/gscn/word2.txt | head -1` sed -e "s/WORD2/$WORD2/g" < /home/gscn/config2tmp >... (4 Replies)
Discussion started by: guitarscn
4 Replies

4. Shell Programming and Scripting

Optional Parameters/arguments while executing a script.

Hello, I have a shell script "Test.ksh" and I need to pass 8 parameters/arguments while executing the script ./Test.ksh 1 2 3 4 5 6 7 8 Out of these I want first 3 to be compulsory and rest 5 to be optional. Can you suggest the way to do this like and also how to pass these optional... (3 Replies)
Discussion started by: indrajit_u
3 Replies

5. Shell Programming and Scripting

Two arguments for optional switch

How to declare the two argument for optional switch ? I have a script that search for a string in current or old zipped log file. Im using a option something like this ${basename} Since $1 can have only one argument should be passed when user select swicth -c and -o need to... (3 Replies)
Discussion started by: baraghun
3 Replies

6. Shell Programming and Scripting

Usage: optional and mandatory arguments

I have an awk script which can be used in the following ways: xi and xf will only be mandatory when processing the file fin.zc. awk -v xi=0/-0.5 -v xf=80/30 -f ./zc2cmd.awk fin.zc > fout.cmod awk -f ./zc2cmd.awk -u awk -f ./zc2cmd.awk --usg awk -f ./zc2cmd.awk -e awk -f ./zc2cmd.awk... (1 Reply)
Discussion started by: kristinu
1 Replies

7. Shell Programming and Scripting

Using arguments in Shell script

Hello, I have to make a shell script doing that : the program tests if there is an argument, if there is it checks whether this is a directory or not, If it is it opens it. for any .c file in the directory it prints 2 lines in the screen : the dependence line of the .o and compiler commend... (1 Reply)
Discussion started by: dekl
1 Replies

8. Shell Programming and Scripting

sub arguments to shell script

Hi, I have a shell script, when run it i get a prompt to enter arguments say 1 for doing my next task otherwise q for quit. What I am trying to do is run the shell script with the argument passed in however it does not seem to work. This is what I did ./test.sh 1 Instead it printed the line... (6 Replies)
Discussion started by: aqua9
6 Replies

9. Shell Programming and Scripting

To run a local shell script in a remote machine by passing arguments to the local shell script

I need to run a local shell script on a remote machine. I am able to achieve that by executing the command > ssh -qtt user@host < test.sh However, when I try to pass arguments to test.sh it fails. Any pointers would be appreciated. (7 Replies)
Discussion started by: Sree10
7 Replies

10. Shell Programming and Scripting

Bash shell script with mandatory and optional input

Hello I would like to write a bash shell script which will need user to supply one variable which is mandatory and some other optional variables. If mandatory variable is not supplied by user, the script will exit. If optional values are not supplied by user, hard-coded value (in the script)... (3 Replies)
Discussion started by: atanubanerji
3 Replies
mlib_VectorMulShift_U8_Mod(3MLIB)			    mediaLib Library Functions				 mlib_VectorMulShift_U8_Mod(3MLIB)

NAME
mlib_VectorMulShift_U8_Mod, mlib_VectorMulShift_U8_Sat, mlib_VectorMulShift_U8C_Mod, mlib_VectorMulShift_U8C_Sat, mlib_VectorMul- Shift_S8_Mod, mlib_VectorMulShift_S8_Sat, mlib_VectorMulShift_S8C_Mod, mlib_VectorMulShift_S8C_Sat, mlib_VectorMulShift_S16_Mod, mlib_Vec- torMulShift_S16_Sat, mlib_VectorMulShift_S16C_Mod, mlib_VectorMulShift_S16C_Sat, mlib_VectorMulShift_S32_Mod, mlib_VectorMulShift_S32_Sat, mlib_VectorMulShift_S32C_Mod, mlib_VectorMulShift_S32C_Sat - vector multiplication with shifting, in place SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_VectorMulShift_U8_Mod(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_U8_Sat(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_U8C_Mod(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_U8C_Sat(mlib_u8 *xz, const mlib_u8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8_Mod(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8_Sat(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8C_Mod(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S8C_Sat(mlib_s8 *xz, const mlib_s8 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16_Mod(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16_Sat(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16C_Mod(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S16C_Sat(mlib_s16 *xz, const mlib_s16 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32_Mod(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32_Sat(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32C_Mod(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); mlib_status mlib_VectorMulShift_S32C_Sat(mlib_s32 *xz, const mlib_s32 *y, mlib_s32 n, mlib_s32 shift); DESCRIPTION
Each of these functions performs an in-place multiplication of two vectors and shifts the result. For real data, the following equation is used: xz[i] = xz[i] * y[i] * 2**(-shift) where i = 0, 1, ..., (n - 1). For complex data, the following equation is used: tmp = xz[2*i] xz[2*i] = (tmp*y[2*i] - xz[2*i + 1]*y[2*i + 1]) * 2**(-shift) xz[2*i + 1] = (tmp*y[2*i + 1] + xz[2*i + 1]*y[2*i]) * 2**(-shift) where i = 0, 1, ..., (n - 1). PARAMETERS
Each of the functions takes the following arguments: xz Pointer to the first element of the first source and result vector. y Pointer to the first element of the second source vector. n Number of elements in each vector. shift Right shifting factor. The ranges of valid shift are: 1 <= shift <= 8 for U8, S8, U8C, S8C types 1 <= shift <= 16 for S16, S16C types 1 <= shift <= 31 for S32, S32C types RETURN VALUES
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
mlib_VectorMulShift_U8_U8_Mod(3MLIB), attributes(5) SunOS 5.10 10 Nov 2004 mlib_VectorMulShift_U8_Mod(3MLIB)
All times are GMT -4. The time now is 06:10 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy