[psas-software] Script help please
jason at lunkwill.org
Tue Nov 1 16:59:54 PST 2005
Wow, what a pain. This works:
# Eliminate sequences of '<space><tab>'
echo "sed Regular Expression is: -->"$REGEXP"<--"
Apparently variables get replaced before the shell splits up arguments. That
makes sense, I guess, since we want this to work:
Rather than returning an error about not finding a command named "ls -l" (as
opposed to a command named ls, then passing it -l as an argument). So I tried
But then, the ' keeps $REGEXP from getting expanded at all, so the command
'sed $REGEXP' is what runs (with the $ and everything). Using sed "$REGEXP",
the " lets the variable be expanded, but still keeps it together as a single
On Tue, 1 Nov 2005, jay1 wrote:
> When I make the suggested change to the script I get:
> jay at rocket:~/bin$ cat smData2 | ./exp2
> sed Regular Expression is: -->s/ \t//g<--
> sed² -e expression #1, char 2: unterminated `s¹ command
> jay at rocket:~/bin$
>>>> Jason Holt < jason at lunkwill.org > on 11/1/05 4:16 PM wrote <<<
>> On Tue, 1 Nov 2005, Jay Beck wrote:
>>>> REGEXP="'s/ \t//g'"
>>>> echo "sed Regular Expression is: -->"$REGEXP"<--"
>>>> sed $REGEXP
>>>> jay at rocket:~/bin$ cat smData2 | ./exp2
>>>> sed Regular Expression is: -->'s/ \t//g'<--
>>>> sed: -e expression #1, char 1: unknown command: `''
>>>> jay at rocket:~/bin$
>>>> can anyone explain why the script acts different and correct it?
>> You're doubly quoting the string, so the ' stays in. Try:
>> REGEXP='s/ \t//g'
More information about the psas-avionics