05-20-2002
Your for statement is already stepping though the args. Don't use "shift" at all in your loop and it should work.
In
your previous thread, I showed you:
for parm ; do
echo $parm is a parameter
done
This will work exactly the same as:
for parm in "$@" ; do
echo $parm is a parameter
done
But you left the quotes off with your loop. If you have a parameter list like:
./script one 222 "333 3333" 4444
that third parameter will be split in two pieces with your loop. You will also have trouble with a null parameter:
./script one 222 "" 4444
To use shift, one way is
while [ $# -gt 0 ] ; do
echo $1 is a parm
shift
done
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
hi all, when I press SHIFT at once it work like as
I've hold it (like CapsLock is On, but it Off) ! ... and if I press F1 (or another
function key) it put out 24z :(
it is occure on my remote sun 8 , xterm session
help me please ! (2 Replies)
Discussion started by: oneivan
2 Replies
2. Shell Programming and Scripting
Hi Folks,
In shell scripting the maximum no. of command line parameters becomes 9(Am i right). If we want to get more than 9 parameters we use the shift command.
Even here there are two possibilities.
1. Without the use of variables - The arguments are lost and the lost no. is equal to the... (6 Replies)
Discussion started by: Nisha
6 Replies
3. Shell Programming and Scripting
I am running a program where in I have this command
which is giving error the shift: number is not correct.
can you please tell me how shift actually works?
the line which is giving error is-
set $PARAM; shift; shift; shift; shift; shift; shift; shift; shift
Is it related somewhere to... (2 Replies)
Discussion started by: shrao
2 Replies
4. UNIX for Dummies Questions & Answers
Hi,
I wrote one script, in between script needs to use 10th and 11th positional parameters, that time i used "shift". Here i am facing the below find problem,
./DataCount.sh: cannot shift
I tried
1) I have read man pages for shift
2) Before but * and **
3) Simple shift with out giving... (4 Replies)
Discussion started by: Nagapandi
4 Replies
5. Shell Programming and Scripting
I would need the awk command or a better way to get my file that looks like
1234
5678
8912
3456
7890
to look like
1234,5678,8912,3456,7890
Thanks in advance (4 Replies)
Discussion started by: bombcan
4 Replies
6. UNIX for Dummies Questions & Answers
Hi,
Firstly, I did a search for this question both on this site and on the internet and have not been able to find a suitable answer that is not general in nature.
I have always been a Windows user. I use my girl friend's mac every now and then, but I always come back to windows. For a... (1 Reply)
Discussion started by: mearex
1 Replies
7. Shell Programming and Scripting
Hello Expert
Can any one please explain what is the use of shift command in general terms:
set -- $(ls -t)
shift
rm -Rf $*
what is the use of shift command over here.
Thanks a lot for your help (2 Replies)
Discussion started by: aks_1902
2 Replies
8. UNIX for Dummies Questions & Answers
think using shift would help me finish my script but cant get it work without your help. would appreciate if you give me a example with shift & counter in the same script so I can later work on that to my one.
Thanks and Good Luck! (1 Reply)
Discussion started by: me.
1 Replies
9. Shell Programming and Scripting
Hello,
I am reading one of the AIX manuals about shell scripting and (AIX 5) and I found this example when introducing to functions:
function usage
{
prog="$1"; shift
print -u2 "$prog: usage: $prog $@"
exit 1
}
This example is meant to be easy but I don't understand what it is... (5 Replies)
Discussion started by: Kibou
5 Replies
10. Shell Programming and Scripting
#!/bin/bash
hostname=$1; shift
for hostname in $1
do
ping $hostname
done
I want to run the above script as hostname.sh yahoo.com google.com cnn.com. I want to shift each hostname to $1. How can do that with above code as currently it's not shifting. (5 Replies)
Discussion started by: scj2012
5 Replies
LEARN ABOUT LINUX
drv_getparm
drv_getparm(9F) Kernel Functions for Drivers drv_getparm(9F)
NAME
drv_getparm - retrieve kernel state information
SYNOPSIS
#include <sys/ddi.h>
int drv_getparm(unsigned int parm, void *value_p);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
parm The kernel parameter to be obtained. Possible values are:
"small and bold"ReadLTthe value of lbolt. lbolt is a clock_t that is unconditionally incremented by one at each clock tick. No special
treatment is applied when this value overflows the maximum value of the signed integral type clock_t. When this occurs, its
value will be negative, and its magnitude will be decreasing until it again passes zero. It can therefore not be relied
upon to provide an indication of the amount of time that passes since the last system reboot, nor should it be used to mark
an absolute time in the system. Only the difference between two measurements of lbolt is significant. It is used in this
way inside the system kernel for timing purposes.
PPGRP Read the process group identification number. This number determines which processes should receive a HANGUP or BREAK
signal when detected by a driver.
UPROCP Read the process table token value.
PPID Read process identification number.
PSID Read process session identification number.
TIME Read time in seconds.
UCRED Return a pointer to the caller's credential structure.
value_p A pointer to the data space in which the value of the parameter is to be copied.
DESCRIPTION
Since the release of the Solaris 2.6 operating environment, the drv_getparm() function has been replaced by ddi_get_lbolt(9F),
ddi_get_time(9F), and ddi_get_pid(9F).
drv_getparm() function verifies that parm corresponds to a kernel parameter that may be read. If the value of parm does not correspond
to a parameter or corresponds to a parameter that may not be read, -1 is returned. Otherwise, the value of the parameter is stored in the
data space pointed to by value_p.
drv_getparm() does not explicitly check to see whether the device has the appropriate context when the function is called and the function
does not check for correct alignment in the data space pointed to by value_p. It is the responsibility of the driver writer to use this
function only when it is appropriate to do so and to correctly declare the data space needed by the driver.
RETURN VALUES
drv_getparm() returns 0 to indicate success, -1 to indicate failure. The value stored in the space pointed to by value_p is the value of
the parameter if 0 is returned, or undefined if -1 is returned. -1 is returned if you specify a value other than LBOLT, PPGRP, PPID,
PSID, TIME, UCRED, or UPROCP. Always check the return code when using this function.
CONTEXT
drv_getparm() can be called from user context only when using PPGRP, PPID, PSID, UCRED, or UPROCP. It can be called from user or interrupt
context when using the LBOLT or TIME argument.
SEE ALSO
ddi_get_lbolt(9F), ddi_get_pid(9F), ddi_get_time(9F), buf(9S)
Writing Device Drivers
SunOS 5.10 24 Jun 1997 drv_getparm(9F)