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