1

if ステートメントの != セクションに問題があります。基本的に、このステートメントは私が知る限り有効ですが、これを実行すると[: 1: !=: unexpected operator. -n を使用して実行しようとしましたが、何らかの理由で、出力が空白であっても -n を使用すると echo コマンドが実行されます。

これに関するヘルプをいただければ幸いです。以下にコード スニペットを添付しました。

#!/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"
4

2 に答える 2

0

お気づきのとおり、"bla "" bla"は 2 つの文字列が連結されているだけです ( "bla bla")。

":をエスケープできます\"が、標準[ testツールにはこのタスク専用のオプションがあります。

   -n STRING
          the length of STRING is nonzero

   -z STRING
          the length of STRING is zero

注: なぜ \` があるのですか? そうすれば、文字列が空になることはありません....

于 2013-03-20T21:51:42.763 に答える