Visit Our UNIX and Linux User Community


Building command line parameters of arbitrary length


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Building command line parameters of arbitrary length
# 1  
Old 11-19-2007
Building command line parameters of arbitrary length

I couldn't find an existing thread that addressed this question, so hopefully this isn't redundant with anything previously posted. Here goes:

I am writing a C-Shell script that runs a program that takes an arbitrary number of parameters:

myprog -a file1 \
-b file2 \
-c file3 ... \
-n fileN \
-operation "a+b+c+...+n"


The files on which myprog operates are in subdirectories: 01/01.ext, 02/02.ext, ... etc.

Since the filenames happen to match the directory names, I would like to be able to pass the script an arbitrary number of directories (in practice, there will be fewer than 26, so there is no concern with running out of "-x" tags). The script would then construct the argument list for myprog so that
myscript.sh 01 02 03 ... 12
would expand into:
myprog -a 01/01.ext -b 02/02.ext ... -k 11/11.ext -l 12/12.ext \
-operation "a+b+c+...+k+l"


Is there a straightforward way to do this?
# 2  
Old 11-20-2007
Java

untested but it should get you pretty close
Code:
#!/bin/sh
if [ $# -gt 26 ]
then
   echo "Too many args!"
   exit 1
fi

letters="a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z"
cli="myprog"
count=1
operation=""
for argument in $*
do
   count=`expr $count + 1`
   letter=`echo $letters | head +$count | tail -1`
   cli="$cli -$letter ${argument}/${argument}.ext"
   if [ -z "$operation" ]
   then
      operation=$letter
   else
      operation="${operation}+${letter}"
   fi
done
cli="$cli -operation \"$operation\""
$cli

# 3  
Old 11-20-2007
Code:
#!/bin/sh

echo $1 |
awk 'BEGIN {
n="abcdefghijklmnopqrstuvwxyz"
printf("myprog")}
{ for (i=1;i<=$0;i++) {
  printf(" -%s %02d/%02d.ext", substr(n,i,1), i, i)
  op=op substr(n,i,1)"+"
  }
  op=substr(op,1,length(op)-1)
  printf(" -operation \"%s\"\n",op)
}'

Usage: "scriptname 5" instead of "scriptname 01 ... 05".

One value suffice.

Regards

Previous Thread | Next Thread
Test Your Knowledge in Computers #482
Difficulty: Medium
in 2018, developers and programmers rarely used an Integrated Development Environment (IDE) that provided a text editor with code highlighting.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing command line parameters into script

Not a good post. (1 Reply)
Discussion started by: bash_in_my_head
1 Replies

2. Shell Programming and Scripting

Selective command line parameters.

Hi, I have a script which has 3 command line parameters.But sometimes it will also take 2 command line parameters or 1.How to do it? I am using $1,$2... to specify the command line parameters. The script which i have written is given below. #!/bin/sh echo "database="$1 echo... (3 Replies)
Discussion started by: arijitsaha
3 Replies

3. UNIX for Dummies Questions & Answers

command line parameters

hi again question on how to change code so that script will prompt to enter parameter if they are missing. . . code I have so far : #!/bin/bash two="200" three=500 if ; then echo " first line parameter is $one " else echo -n " first parameter is missing , please write... (2 Replies)
Discussion started by: me.
2 Replies

4. UNIX for Dummies Questions & Answers

Problem with command line parameters

hi, This is actually realted to a Abinitio command in a unix script. my code is #!/bin/ksh GRAPH_NAME=$1 shift air sandbox run $GRAPH_NAME $* > file.lst 2>&1 if ]; then echo "Pass" fi when i run this script with this command "script.ksh graph_name parameters" the script... (1 Reply)
Discussion started by: siva1612
1 Replies

5. UNIX for Advanced & Expert Users

How to hide command line parameters?

Hello I want to hide command line parameters of my programs/scripts to not to be seen with 'ps' command. How can I do that? thanks in advance. (6 Replies)
Discussion started by: xyzt
6 Replies

6. UNIX for Advanced & Expert Users

Reading putty command line parameters from Linux

I am running Putty 0.60 from Windows XP and I am connecting to a Linux box. I would like to be able to pass a command line parameter to my Linux session so that my Linux session can execute a specific command, depending on the command line parameter. I have looked on the Internet and tried... (1 Reply)
Discussion started by: SFNYC
1 Replies

7. UNIX for Dummies Questions & Answers

How to use parameters in command line while submitting a report

Iam running a report(.rdf) file from UNIX command line. using the following syntax for eg xxx.rdf is the report rdf ar60run batch=yes userid=username/paswd@database report=xxx.rdf destype=file desname=xxx.dat now i need to submit this with three pameters pls suggest (1 Reply)
Discussion started by: sreenusola
1 Replies

8. UNIX for Dummies Questions & Answers

what is the maximum length of th os-command line in Unix.

Hi All, I didn't find any thread that match this question so I hope it's not redundant. I am totally new to Unix. I want to know what is the maximum length of the os-commandline in Unix. Will it cause any problem if I run any application whose total path length is much longer than 256... (2 Replies)
Discussion started by: kumardesai
2 Replies

9. UNIX for Dummies Questions & Answers

How do you take in variables/parameters from the command line?

I need to take in two parameters from the command line...help! (1 Reply)
Discussion started by: avisram
1 Replies

10. Shell Programming and Scripting

passing command line parameters to functions - sh

All, I have a sh script of the following tune: function a () { #functionality.. } function b () { #functionnlity.. } function check () { # this function checks for env and if all fine call build } function usage () { #sh usage details } function build () { #calls either a or b or... (5 Replies)
Discussion started by: vino
5 Replies

Featured Tech Videos