[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: -eq and strings
From: |
Charles Daffern |
Subject: |
Re: -eq and strings |
Date: |
Mon, 06 Mar 2017 15:00:28 +0000 |
User-agent: |
K-9 Mail for Android |
On 6 March 2017 14:09:39 GMT+00:00, Rob la Lau <rob@ohreally.nl> wrote:
>On 06-03-17 14:18, Greg Wooledge wrote:
>> You're misunderstanding. In a math context, which you are creating
>here
>> by using -eq, the word 'x' is interpreted as a variable name, which
>may
>> contain another variable name, and so on, until finally an integer is
>> discovered.
>
>Thanks. Now that I know it, I can indeed find it in the docs.
>
>I guess this means that actually test and [ are 'broken':
>
>$ test "x" -eq "x" && echo "yes" || echo "no"
>test: invalid integer 'x'
>no
It is my understanding that [ is a standard command mandated by POSIX which may
be implemented as an external command. It would be unreasonable to expect an
external command to be able to introspect shell variables, and similarly I
would be surprised to find a shell which does this substitution in the [
command. For that reason it would certainly break my usual expectations for how
my scripts should run, and it might possibly become a source of bugs. In the
case of [[ however, it is entirely understandable because it is expected that
the shell does magic in that case (new parsing rules etc.).
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
- -eq and strings, Rob la Lau, 2017/03/04
- Re: -eq and strings,
Charles Daffern <=