egyoperandusú operátor szükséges

Van egy működő bash szkriptem, ennek ellenére mégis van a tárgyban említett hibaüzenet.
Sokáig észre sem vettem a clear parancs miatt.
Az alábbi sort sérelmezi.

until [ "0" != ${inputvar} ]; do

Vagy ! vagy = ?
A lényeg hogy kilépjen ha 0 karaktert kap inputnak. Ha valaki elmagyarázná, vagy linket küldene...
Örülnék.

Hozzászólások


$ test "0" != ${inputvar}
bash: test: 0: unary operator expected
$ test "0" != "${inputvar}"
$

Egyszerű: biztosan üres/nincs beállítva az inputvar, tehát a ${inputvar}-ból semmi se lessz, azaz a [ "0" != ]; kerülne végrehajtásra ami ugye syntax error...
Tegyél " idézőjeleket köré és jó is lessz ;-)

A masik trukk ez:
until [ "x0" != "x${inputvar}" ]; do
Ha elekonkatenalsz egy x karaktert, mindenkepp lesz a jobb oldalon is valami..

--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald

Ez volt a kiinduló pont. S ez produkálta a hibaüzenetet.
until [ "0" != ${inputvar} ]; do

HA idézőjelet adtam neki,
until [ "0" != "${inputvar}" ]; do
Akkor meg mintha le se futott volna. Egyből visszaadta a promptot.
A -x nem segített további információhoz.

Ez most működik:
while [ "0" != "${inputvar}" ]; do

Pedig szerintem már annyiszor leírtam:

"shell programozás első axióma:
nem írunk változóhivatkozást idézőjel nélkül"

(Gyakorlatban oly csekély számű alkalommal *kell* elhagyni az idézőjelet, cserébe oly sokszor szopat meg ha elhagyjuk ...)

Nyilván az sem segít, ha nem tudjuk a while / until közti különbséget.

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?