2013-03-20 4 views
0

У меня возникли проблемы с секцией! = Оператора if. По существу это утверждение действительно, насколько мне известно, однако выполнение этого дает [: 1: !=: unexpected operator. Я попытался выполнить использование -n, ​​но по какой-либо причине, даже если вывод пуст, использование -n все еще запускает команду echo.Использование sh -c, если сравнение внутри команды SSH

Любая помощь на это оценивается. Ниже приведен фрагмент кода.

#!/bin/sh 

HOST=$1 
USER="/scripts/whoowns $HOST | tr -d '\r'" 

ssh -t $HOST -p 22 -l deehem "sh -c 'if [ "" != "\`$USER\`" ]; then echo "Username for $HOST: \`$USER\`"; fi' ; bash -login" 
+0

'' sh -c 'if ["" ' –

+0

Ах, хорошо, отработано, что это потому, что" "пусто. Есть ли жизнеспособная альтернатива' "! =" $ VAR "? –

ответ

0

Как вы поняли, "bla "" bla" всего две строки каскадных кодов ("bla bla").

вы можете избежать ": \", но стандарт [test инструмента имеет возможность специально для этой задачи:

-n STRING 
      the length of STRING is nonzero 

    -z STRING 
      the length of STRING is zero 

Примечания: почему вы \ `? Таким образом, строка никогда не будет пуста ....

Смежные вопросы