04-08-2018
Quote:
Originally Posted by
RudiC
That obviously is a (bourne) shell function. As you don't mention your shell's version,
bash assumed.
man bashuring expansion, the "multiword character" of $1 is lost, and the shell makes up this five item list:
8 8 8 9 9 across which the for loop iterates, resulting in 42 plus
x's initial value. Be aware that the
x=$1 assignment has nothing to do with the $1 that
func() is called with; function get their own set of parameters when called.
And, remove the space in the
let assignment.
Thank you, so the
x=$1 assignment doesn't serve any noticeable purpose in this script ?
B.In truth, the for loop doesn't iterates just three times for $1 $2 $3 as defined but rather one time for each existed item,total of five iterations in this case ?
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
We use a UNIX-based system (Lawson) at work and I was given this command to request a data extract from the db admin. The only thing I really understand is the last line as it appears to be joining the files created from the first three lines into one. Is there anyone who can help me breakdown the... (4 Replies)
Discussion started by: KGee
4 Replies
2. Shell Programming and Scripting
Hello everybody,
Can anybody tell me of what "~" refers to in the below code snippet.
lsvg $vgNAME | awk 'BEGIN {freeDISK=1} {if (($4 ~ /PP/ && $5 ~ /SIZE/) || ($4 ~ /FREE/ && $5 ~ /PPs/)) {freeDISK *= $6 }} END {print freeDISK*1024 }'
Thanks in advance, (6 Replies)
Discussion started by: tenderfoot
6 Replies
3. Shell Programming and Scripting
# sub: find block (in cols), return line-numbers (begin-end) or 0 if notfound
sub findb{
my ($exp1,$col1,$exp2,$col2)= @_; # $exp = expression to find, $col - column to search in
my $cnt=0;
my ($val1,$val2);
my ($beg,$end);
for($cnt=1;$cnt<=65536;$cnt++){
$val1 =... (3 Replies)
Discussion started by: suvenduperl
3 Replies
4. Shell Programming and Scripting
Can someone explain what is happening line by line in this script, particularly after the do statement. The script works, it renames all the files in my directory that has a date in the file name. But I would like to know more about it.
#!/bin/bash
newdate=12-10-1995
for file in *--*
do
... (6 Replies)
Discussion started by: Harleyrci
6 Replies
5. UNIX for Dummies Questions & Answers
i am trying to understand this script example. the text does not explain it. can someone tell me briefly what each of the functions do. any help will be appreciated.
#!/bin/bash
killtree() {
local _pid=$1
local _sig=${2-TERM}
for _child in $(ps -o pid --no-headers --ppid... (1 Reply)
Discussion started by: iluvsushi
1 Replies
6. Shell Programming and Scripting
Hi Guys,
I am new to scripting , I am trying to rebuild a script based on an old script. Can someone help me figure out what the script is doing? This is only a part of the script.
I am looking to interpret these two points in the scripts:-
1)
test=`echo $?`
while
I do not... (3 Replies)
Discussion started by: rajsan
3 Replies
7. Shell Programming and Scripting
I want to make a script which takes the number of argument, add those argument and gives output to the user, but I am not getting through...
Script that i am using is below :
#!/bin/bash
sum=0
for i in $@
do
sum=$sum+$1
echo $sum
shift
done
I am executing the script as... (3 Replies)
Discussion started by: mukulverma2408
3 Replies
8. Shell Programming and Scripting
Hi,
New to this forum, as well as to unix scripting..need help to understand below script ...
sendNotice_sp()
{
ATTACH=${LNXLOG:-}
if ; then
if ; then
mail -s "$ERR_MSG" $ERR_EMAIL_TO < $ATTACH
fi
else
mail -s "$ERR_MSG" $ERR_EMAIL_TO < /dev/null
fi
}
afaik this is sm kind of... (6 Replies)
Discussion started by: gnnsprapa
6 Replies
9. Shell Programming and Scripting
Could someone please help me in understanding the code below:
#!/usr/bin/ksh
Month=`date|cut -c5-7`
Day=`date|cut -c9-10`
Year=`date|cut -c27-28`
Rom2Jul() { case $Month in Feb) Day=$(( $Day+31 ));;
Mar) Day=$((... (27 Replies)
Discussion started by: hasn318
27 Replies
10. UNIX for Beginners Questions & Answers
Below script is called as Reducer, I am not sure how it work, can some expert explain me what this script does as i am a beginner.
inputfile:
hi hi how are are you
code:
#!/bin/bash
lastkey=""; -- what does this mean, because i saw in debug mode it is taking value as hi
count=0;... (13 Replies)
Discussion started by: mirwasim
13 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)