Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month, online, via Jitsi Meet.

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] through the looking glass



On 6/1/2018 7:32 PM, dan moylan wrote:
> also b2 writes out empty files abc and xyz.
> 
> i've surely missed something fundamental, or did i just
> step into an alternate universe?

What you missed isn't so obvious.

"[" is a synonym for /bin/test with the caveat that a closing "]" is
required. What's happening is that "[ $st1 > $st2 ]" becomes:

  /bin/test abc > xyz

"/bin/test abc" returns true, and you get an empty file because test
generates no output, only return codes 0 (true) or 1 (false).

The portable fix is to rewrite your logic because the test command only
allows for "=" and "!=" in string comparisons.

The bash-specific fix is to change your single brackets to double
brackets: "[[ $st1 > $st2 ]]". "[[" is a bash built-in and it bypasses
all of the above problems. But it's not portable.

-- 
Rich P.



BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org