[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: how to pass arguments with space inside?
From: |
lehe |
Subject: |
Re: how to pass arguments with space inside? |
Date: |
Thu, 9 Apr 2009 17:02:47 -0700 (PDT) |
Sorry. I won't top post again.
I tried your way but ARG_OPTS only accept the first argument and ignore the
rest.
Mike Frysinger wrote:
>
> On Thursday 09 April 2009 17:47:59 lehe wrote:
>> Thanks Mike.
>
> please do not top post
>
>> Mike Frysinger wrote:
>> > On Thursday 09 April 2009 16:46:27 lehe wrote:
>> >> I was wondering how to pass arguments with space inside. For example,
>> my
>> >> bash script looks like:
>> >>
>> >> #!/bin/bash
>> >> ARG_OPTS=""
>> >> while [[ -n "$1" ]];
>> >> ARG_OPTS="${ARG_OPTS} $1"
>> >> shift
>> >> done
>> >>
>> >> If I pass an argument like "--options='-t 0 -v 0'", then it would be
>> >> splitted by the spaces inside, ie "--options='-t", "0", "-v" and "0".
>> >>
>> >> How can I achieve what I wish?
>> >
>> > use arrays
>> >
>> > $ f=( a "b c" d)
>> > $ printf '%s\n' "${f[@]}"
>> > a
>> > b c
>> > d
>>
>> Could you explain it a little? I don't quite get it. How to apply this to
>> argument parsing?
>
> instead of gathering stuff into the variable ARG_OPTS, declare it as a
> variable and gather it there:
> declare -a ARG_OPTS
> while [[ -n $1 ]] ; do
> ARG_OPTS[${#ARG_OPTS[@]}]="$1"
> shift
> done
>
> then use it like i showed and the argument grouping will be preserved:
> "${ARG_OPTS[@]}"
>
> i imagine there are plenty of bash array howtos out there if you google
> -mike
>
>
>
>
--
View this message in context:
http://www.nabble.com/how-to-pass-arguments-with-space-inside--tp22978918p22981193.html
Sent from the Gnu - Bash mailing list archive at Nabble.com.
- how to pass arguments with space inside?, lehe, 2009/04/09
- Re: how to pass arguments with space inside?, Mike Frysinger, 2009/04/09
- Re: how to pass arguments with space inside?, lehe, 2009/04/09
- Re: how to pass arguments with space inside?, Mike Frysinger, 2009/04/09
- Re: how to pass arguments with space inside?,
lehe <=
- Re: how to pass arguments with space inside?, Chris F.A. Johnson, 2009/04/09
- Re: how to pass arguments with space inside?, lehe, 2009/04/10
- Re: how to pass arguments with space inside?, Greg Wooledge, 2009/04/10
- Re: how to pass arguments with space inside?, Eric Blake, 2009/04/10
- Re: how to pass arguments with space inside?, Chris F.A. Johnson, 2009/04/11