what is the command To print script arguments
Answers were Sorted based on User's Feedback
Answer / shabab
$* and $@ are the right answers
$# - prints out the number of arguments passed
Consider the below code
########################
for i in "$*"
do
print $i
done
for i in "$@"
do
print $i
done
########################
and you call the script by saying
#samp.sh hai welcome to "Unix Forum"
hai welcome to Unix Forum
hai
welcome
to
Unix Forum
The first line is the output by printing out $*
the next four lines are with the help of $@.
So
$* will combine all arguments to a single string
$@ will have each arguments as a seperate string
Is This Answer Correct ? | 4 Yes | 0 No |
Answer / bc
$@ seems to be another option. Difference between $* and $@
is that $@ recognizes multiple strings given in quotes as a
single word.
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / alf55
There is a difference between using $@ and using "$@". The
first is the same as using $*, while the latter is what was
being described ad $@. It only handles the arguments
correctly when used as "$@". However, you will not see where
the arguments are changing in its simple usage in a print.
echo "arguments are:"; for arg in "$@"; do echo "
${arg}"; done
Will show each argument on a new line indented by four spaces.
Here is an example:
[code]
bash$ function show_simple_args
> {
> echo "There are $# arguments passed, can you find
them correctly?"
> echo "using \$*:"
> echo $*
> echo "using \$@:"
> echo $@
> echo "using \"\$@\":"
> echo "$@"
> echo "using for loop with \$*:"
> echo "arguments are:"; for arg in $*; do echo "
${arg}"; done
> echo "using for loop with \$@:"
> echo "arguments are:"; for arg in $@; do echo "
${arg}"; done
> echo "using for loop with \"\$@\":"
> echo "arguments are:"; for arg in "$@"; do echo "
${arg}"; done
> }
bash$
bash$ show_simple_args "arg 1" "arg 2" "arg 3" "arg 4"
There are 4 arguments passed, can you find them correctly?
using $*:
arg 1 arg 2 arg 3 arg 4
using $@:
arg 1 arg 2 arg 3 arg 4
using "$@":
arg 1 arg 2 arg 3 arg 4
using for loop with $*:
arguments are:
arg
1
arg
2
arg
3
arg
4
using for loop with $@:
arguments are:
arg
1
arg
2
arg
3
arg
4
using for loop with "$@":
arguments are:
arg 1
arg 2
arg 3
arg 4
bash$
[/code]
Is This Answer Correct ? | 0 Yes | 1 No |
What is the difference between locating and locate command?
Write a command that will display all .txt files, including its individual permission.
What is phony in makefile?
What does mkdir do in linux?
what is initrd image?
I have Laptop. I want to assign DHCP ip address, but in my Laptop having Wireless and with wire NIC cards, it is possible to assign reserve ip address for both NIC card, but same host name?
What does f mean linux?
what is the command to uninstall processes in linux?
17 Answers Aegon, HCL, IBM, Ugam Solutions,
What is umask 000?
How do I check storage on linux?
Why we use pwd command in linux?
The head command writes the how many lines of a file to screen?