var1=1,23,234
var2=a,ab,xyz
var3=0,0,0
IFS="," arr1=($var1)
IFS="," arr2=($var2)
IFS="," arr3=($var3)
seq 0 2 | while read i
do
echo " insert into table (${arr1[$i]}, '${arr2[$i]}', ${arr3[$i]});"
done
So the number of values in the variables may not be the same always. So should I can calculate the length first and use that in the code. This example has 3 for each variable.. but it could be 2 or 4. thanks
---------- Post updated at 01:16 PM ---------- Previous update was at 12:54 PM ----------
I have a script which selects two 'sets' of system LVM device files from a tabular file 'mapfile' using awk :
LIVELV=`awk '{print($1)}' mapfile`
BCVLV=`awk '{print($3)}' mapfile`
I wanted to pass these 'sets' into an LVM command 'loop' along the lines of :
lvmerge $BCVLV $LIVELV
ie.... (3 Replies)
Hi ,
I am trying to write a script in kshell with while loop ,its like
count=1
count_cmp=1
while ; do
tail -$count tempfile | head -1 > tempstring
.......
done
However i get CIF.sh: line 33: '
I have checked thetrailing spaces , not sure what is... (4 Replies)
Hello,
I need to run a command for a set of input variables that are present in a tab delimited file, a sample of which is shown below:
1 3749
1 4129
1 5980
2 6201
2 9925
2 6894
3 1338
3 6477
3 6242
3 3632
Every row represents the two input values... (2 Replies)
Hi,
I have two variables like below which will always be of the same size
a=1:2:3
b=A:B:C
I need to use a for/while loop that will have both the variables available. I cannot use an array here and will probably might iterate through the variable as echo $a | tr ':' '\n' and thus iterate... (5 Replies)
Hi,
I need to pass the multiple values of src1 to another variable. I managed to print it but not sure how to assign it to a variable in a loop.
src1=01,02,03
echo $src1|awk 'BEGIN {FS=","} {for(i=1;i<=NF;i++) print $i}'
I need to pass the value as
src2=01
src2=02
src2=03
Thanks... (4 Replies)
Hi,
I managed to read and print variable as shown in the below code.
table_name=table1,table2,table3
i=0
IFS=","
for i in $table_name
do
echo $i
done
Is there a way how I can read more than one variable. For example I need to read 2 variables and populate the output... (6 Replies)
Hi
My goal is to fill an HTML form and submit.
What I have managed to do:
1. curl command to fill up the form and submit
2. a file which has the input
curl command:
curl -v -b cookie.txt -d __CSRFToken__=dc23d5da47953b3b390ec68d972af10380908b14 -d do=create -d a=open -d... (10 Replies)
Hi!
I've run into a problem where my variables are displayed in the wrong order. Basically I'm supposed to use a file that has information like this username:firstname:lastname:etc:etc.
What I'm interested in doing is reformating it into a something more like this: username lastname,... (2 Replies)
Discussion started by: reindeermountai
2 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)