Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Can I test if a parameter expansion has worked



> On 15/09/2022 08:34 zzapper <zsh@xxxxxxxxxxxxxx> wrote:
> # adding a prefix '_s' to an image name
> 
> f=stuff.jpg;
> 
> print ${f/%(#m).[pjg][npi]e#[gf]/_s$MATCH}
> 
> stuff_s.jpg  # good this is what i want
> 
> # now pass 'bad' input
> 
> f=stuff.txt;
> 
> print ${f/%(#m).[pjg][npi]e#[gf]/_s$MATCH}
> stuff.txt  #  expansion has obviously left the input unchanged but can I 
> test for that???

No, there's no way of telling if some expansion actually changed an
expression without actually testing the final result.  The differences
between the cases (changed / not changed) are buried deep within the
shell and don't leave an obvious trace above --- and in any case given
how complicated zsh expressions can get finding a useful binary way of
testing what the whole expression did would be incredibly hairy.

Just test the resulting expression.

pws




Messages sorted by: Reverse Date, Date, Thread, Author