On 2014-11-11 23:54, Glenn Jackman wrote:
> Marcin, applying this to the 2-variable question:
> 
> $ test "$SSH_TTY$SSH_CLIENT"; and echo "not empty"; or echo "unset or empty"
>> unset or empty
>> $ ssh localhost
>> [...]
>> $ test "$SSH_TTY$SSH_CLIENT"; and echo "not empty"; or echo "unset or
>> empty"
>> not empty

Nice trick Gleen. That works fine when as a substitution of `or`
operator (just one variable set makes the test return `true`).

Marcin



> On Tue, Nov 11, 2014 at 5:51 PM, Glenn Jackman <jack...@pythian.com> wrote:
> 
>> I suspect what is happening (this is true in bash, I'm speculating about
>> fish) is that an unset variable is substituted with nothing (not the empty
>> string, but with nothing). Then the `test` command receives exactly one
>> argument: "-n". When `test` is given a single argument, the result is true
>> if that argument is not empty. This is true for the string "-n".
>>
>> So another way to write the test is simply
>>
>> if test $NOT_SET_VARIABLE; ...
>>
>>
>> Demo
>>
>> $ set -q foobar
>>> $ test $foobar; and echo "not empty"; or echo "unset or empty"
>>> unset or empty
>>> $ set foobar ""
>>> $ test $foobar; and echo "not empty"; or echo "unset or empty"
>>> unset or empty
>>> $ set foobar abc
>>> $ test $foobar; and echo "not empty"; or echo "unset or empty"
>>> not empty
>>
>>
>>
>>
>> On Tue, Nov 11, 2014 at 5:33 PM, Greg Reagle <greg.rea...@umbc.edu> wrote:
>>
>>> That's very interesting.  I get the same problem.  I don't think
>>> anything is wrong with your code.  I think something fishy is going on
>>> with fish, but I don't know what.  It looks like it might even be a bug
>>> in fish.  I would expect test -n to be the opposite of test -z, but that
>>> is not true sometimes.
>>>
>>> There are a few workarounds.
>>>
>>> I find that test -z works fine.
>>>
>>> Another way to test a variable is
>>>     if test ab"$variable"cd = abcd; echo zero; else; echo non-zero; end
>>>
>>> --
>>> http://www.fastmail.fm - Access all of your messages and folders
>>>                           wherever you are
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Comprehensive Server Monitoring with Site24x7.
>>> Monitor 10 servers for $9/Month.
>>> Get alerted through email, SMS, voice calls or mobile push notifications.
>>> Take corrective actions from your mobile device.
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Fish-users mailing list
>>> Fish-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/fish-users
>>>
>>
>>
>>
>> --
>> *Glenn Jackman*
>> Senior Software Developer
>>
>> *Pythian - Love your data*
>> jack...@pythian.com
>> Tel: +1 613 565 8696 Ext. 1478
>> Mobile: +1 613 808 4984
>> www.pythian.com
>>
> 
> 
> 


-- 
http://blog.solidsoft.info/ - Working code is not enough


------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
Fish-users mailing list
Fish-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fish-users

Reply via email to