help-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: why does this define bla() instead of respect the newline as command


From: Oğuz
Subject: Re: why does this define bla() instead of respect the newline as command separator
Date: Fri, 19 Mar 2021 17:59:18 +0300

On Fri, Mar 19, 2021 at 4:11 PM Chet Ramey <chet.ramey@case.edu> wrote:

> On 3/19/21 4:12 AM, Alex fxmbsw7 Ratchev wrote:
> > eval $'alias n=bla\nn() { type $FUNCNAME ; }\nn'
> > bla is a function
> > bla ()
> > {
> >      type $FUNCNAME
> > }
> >
> > it was supposed to be n() ..
>
> `n' is the first word in a position where a simple command can be parsed,
> so it's subject to alias expansion.
>

Not much related, but isn't this supposed to work?

$ cat foo.sh
alias c='case ' w='foo ' i='in ' p=') ' e='esac' u='uname ' s='; '
c w i e
c w i w p e
c w i w p u s e
$
$ for sh in ash 'bash -O expand_aliases' bosh dash gwsh ksh mksh oksh yash
zsh; do echo $sh; $sh <foo.sh; done
ash
Linux
bash -O expand_aliases
bash: line 2: syntax error near unexpected token `newline'
bash: line 2: `c w i e'
bosh
Linux
dash
Linux
gwsh
Linux
ksh
ksh: syntax error at line 2: `i' unexpected
mksh
Linux
oksh
Linux
yash
Linux
zsh
zsh: parse error near `i'
zsh: parse error near `i'
zsh: parse error near `i'


>
>
> --
> ``The lyf so short, the craft so long to lerne.'' - Chaucer
>                  ``Ars longa, vita brevis'' - Hippocrates
> Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]