On 09/14/2017 08:00 PM, Assaf Gordon wrote: > On 2017-09-14 11:43 AM, Eric Mariaud wrote: >> eric@Eric-Xub:~/Bureau$ expr 2 + 3 >> 5 >> eric@Eric-Xub:~/Bureau$ expr 2 * 3 >> expr: erreur de syntaxe > > The asterisks ( * ) character has special meaning on the shell, > which you can observe by comparing the output of: > > echo 2 + 3 > vs > echo 2 * 3 > > Technically, the shell replaces the '*' character with the list of > all files in the current directory. The 'expr' program never sees it.
Well, we could try to improve the error diagnostics. I see in the code that expr returns "syntax error" without any more explanation in several places. It could at least say what it would expect or not expect in that place. And finally - when it comes to shell pattern globbing - it could do an extra check if the offending argument is an existing file similar to latest 'find' [1]: $ touch a b c $ ../find/find -name * find: paths must precede expression: `b' find: possible unquoted pattern after predicate `-name'? [1] https://git.sv.gnu.org/cgit/findutils.git/commit/?id=9530e31f6d WDYT? Thanks & have a nice day, Berny