Trouble displaying parameters passed into a for loop


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Trouble displaying parameters passed into a for loop
# 1  
Old 12-30-2011
Trouble displaying parameters passed into a for loop

Code:
#!/bin/bash

function check_num_args()

{
        if [ $# -eq 0 ]; then
                echo "Please provide a file name"
        else
                treat_as_file $*
        fi
}


function treat_as_file()
{
        numFiles=$#
        for((i=1;i<=$numFiles;i++));do
        echo $i
        done
}

check_num_args $*

Hi,

I'm new to this and am having trouble with my code above. In my function treat_as_file(), I want to display the parameters that have been passed into it. If for example when I run my file, I pass parameters 'file1' file2' 'file3', I want my code to echo 'file1' file2' 'file3'. At the moment it is displaying 1 2 3.

I have tried changing it to echo $$i but this displays my process id + i, and I have also tried echo \$$i but this displays $1 $2 $3.

Your help would be appreciated.
Thanks
# 2  
Old 12-30-2011
Is this what you're looking for?
Code:
#!/bin/bash
function check_num_args()
{
    if [ $# -eq 0 ]; then
        echo "Please provide a file name"
    else
        treat_as_file $*
    fi
}


function treat_as_file()
{
    i=1;
    for x in $*
    do
        echo $i $x
        i=$(($i + 1))
    done
}
check_num_args $*

Code:
$ ./test.sh file1 file2 file3
1 file1
2 file2
3 file3

This User Gave Thanks to balajesuri For This Post:
# 3  
Old 12-30-2011
Thanks Balajesuri, that worked beautifully.

Just out of interest though, was it possible using my method?
# 4  
Old 12-30-2011
It was possible using the eval Shell command. However this command has security issues and is best avoided.
Code:
eval echo \$$i

This User Gave Thanks to methyl For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

C++ problem displaying parameters using dOxygen

I have written some C++ code with documentation code for dOxygen as below. However the parameters are not showing up. /// \file /// /// #ifndef __VECT2_HH__ #define __VECT2_HH__ #include <iostream> #include <assert.h> #include <cmath> #include "common.hh" ... (0 Replies)
Discussion started by: kristinu
0 Replies

2. Shell Programming and Scripting

Three parameters passed from a script to other at different time

nothing (0 Replies)
Discussion started by: shikha84
0 Replies

3. Shell Programming and Scripting

How to check that passed parameters all have the same extension?

$ ls monkey.txt banana.csv tree.txt $ myscript monkey.txt tree.txt All extensions ARE alike. $ myscript *txt All extensions ARE alike. $ myscript monkey.txt banana.csv All extensions are NOT alike. $ myscript * All extensions are NOT alike. My brain has given up; what's the simplest... (11 Replies)
Discussion started by: cs03dmj
11 Replies

4. Shell Programming and Scripting

Parameters passed to commands but not working in Bash shell

Hi, I am trying to do this thing useing my shell bash ( sorry for my english ) I have in a file 63 hostnames, i wanna ask to the DHCP admin, to reserv that reserves 63 IP addresses of this hosts, using their mac address. I have thinked this script: for ((i=1;i<63;i++)); do arp $(head... (10 Replies)
Discussion started by: Cypress
10 Replies

5. UNIX for Dummies Questions & Answers

ksh: verifying number of parameters passed

hi all, i have a ksh script that takes up to 3 parameters -- only 2 of which are required. what's the simplest way to check if the user passed 2 or 3 parameters? if 3 parameters are not null then do this elif 2 parameters are not null then do this else echo "you need at least 2... (5 Replies)
Discussion started by: ankimo
5 Replies

6. Shell Programming and Scripting

Problem with script not able to take parameters passed to it

debug output: (3 Replies)
Discussion started by: dsravan
3 Replies

7. Shell Programming and Scripting

Problem with script not able to take parameters passed to it

when I pass any 2 parameters it always says: Number of parameters passed: 1 and the job_name as x Can some body help? (7 Replies)
Discussion started by: dsravan
7 Replies

8. Shell Programming and Scripting

Extracting passed in parameters

we want to produce a script that we can pass parameters of -a for email address and -s for subject then the report filename, so an exmaple would be; email_report -a sendto@domain.com -s This is a test reportname.txt The problem we have is the subject can have more than one word, so I can't just... (2 Replies)
Discussion started by: spookyrtd99
2 Replies

9. UNIX for Dummies Questions & Answers

Assigning a Variable all the Parameters passed

Hi, I have a unix script which can accept n number of parameters . I can get the parameter count using the following command and assign it to a variable file_count=$# Is there a similar command through which i can assign a variable all the values that i have passed as a parameter ... (2 Replies)
Discussion started by: samit_9999
2 Replies
Login or Register to Ask a Question