[linux] Re: bash getopt probleem

Paul Slootman paul+nospam op wurtel.net
Ma Aug 8 16:36:09 CEST 2011


On Mon 08 Aug 2011, Hans Paijmans wrote:

> Ik heb het probleem dat getopt van bash mijn parameterstring met spaties
> erin vernaggelt.

Nee, dat doet jouw script.

> zoals je ziet is na getopt de parameter zijn dubbele quotes kwijt. Wat

De parameter heeft nooit dubbele quotes gehad.
Die dubbele quotes bij aanroep heeft er alleen maar voor gezorgd dat die
string incl. spaties als een geheel als 1e parameter gegeven is aan de
script.

Bij de aanroep van getopt geef je de string weer door dmv. de $*, beter
zou "$@" geweest zijn (dus incl. de quotes) maar dat had hier niet
uitgemaakt. Alleen heeft dit als resultaat dat getopt weer keurig de
string in z'n geheel weer output, en die laat je dmv. de backticks ``
evalueren als de parameters van set.  En dan zijn die spaties weer
gewoon scheidingstekens tussen parameters.

Oftewel: je moet getopt goed aanroepen zodat ie ook snapt wat je wilt :)

Probeer eens:

eval set -- `getopt -o B:bmI:NMTLsS:p:hHd -- "$@"`


Paul



More information about the Linux mailing list