Good point, jim. I've edited my solution a few times. First iteration shifted once. Then it did not shift. Then the shift creeped back in. Now it's back out. I wasn't considering that this could be part of a larger script and viewed the shift as inconsequential.
Alister
---------- Post updated at 02:58 PM ---------- Previous update was at 02:39 PM ----------
Quote:
Originally Posted by jim mcnamara
You can use bracket notation to step thru the positional parameters without destroying them. one way:
Code:
while [[ $i -le $# ]]
do
echo \$${i}
i=$(( $i + 1 ))
done
Unless that's a newer shell feature with which I am not familiar, I think what you're attempting requires some eval magic. Perhaps something like:
Code:
while [[ $((++i)) -le $# ]]
do
eval echo \${$i}
done
How do I check if the argument passed to a script is an integer?
I am writting a script that will take to integers and want to be able to check before I go on.
I am using bourne shell.
Thanks in advance (13 Replies)
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)
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)
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)
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)
#!/bin/bash
function check_num_args()
{
if ; 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
... (3 Replies)
shift(1) User Commands shift(1)NAME
shift - shell built-in function to traverse either a shell's argument list or a list of field-separated words
SYNOPSIS
sh
shift [n]
csh
shift [variable]
ksh
* shift [n]
DESCRIPTION
sh
The positional parameters from $n+1 ... are renamed $1 ... . If n is not given, it is assumed to be 1.
csh
The components of argv, or variable, if supplied, are shifted to the left, discarding the first component. It is an error for the variable
not to be set or to have a null value.
ksh
The positional parameters from $n+1 $n+1 ... are renamed $1 ..., default n is 1. The parameter n can be any arithmetic expression that
evaluates to a non-negative number less than or equal to $#.
On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in effect when the command completes.
2. I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO csh(1), ksh(1), sh(1), attributes(5)SunOS 5.10 15 Apr 1994 shift(1)