0

Here Documentを使用して、配列を使用して3つのリモートサーバーで次のコマンドセットを実行しようとしていますが、エラーが発生します

コード -

ssh -oPasswordAuthentication=no $remoteUser@${SERVER[i]} <<-END_TEXT
VALUE=`cat /home/cognos/cognos/c8/configuration/cogstartup.xml | grep -i xsd:long | head -1 | cut -d">" -f2 | sed 's/[:/<|crn:value]*//g'`
VALUE_BACKUP=$VALUE
........................ (many more lines of code)
RESULT1=`perl -e '@stats = stat("/home/cognos/cognos/c8/configuration/signkeypair"); print ((time - $stats[9]) < '$VALUE');'`

END_TEXT

そしてエラー:

**error -**
syntax error at -e line 1, near "< )"
Execution of -e aborted due to compilation errors.
syntax error at -e line 1, near "< )"
Execution of -e aborted due to compilation errors.
syntax error at -e line 1, near "< )"
Execution of -e aborted due to compilation errors.

ps-scpを使用してコマンドをリモートサーバーにコピーし、sshを使用してそれらを実行することは、私が探しているソリューションではありません。

4

1 に答える 1

2

ヒアドキュメント全体を調べて、 を検索して-eください。

編集:

次のように、END_TEXT を一重引用符で囲みます。

ssh ... <<-'END_TEXT'
...
END_TEXT

これにより、リモート サーバーで使用可能になる前に、$VALUE が空の文字列に置き換えられるのを防ぐことができます。

于 2012-10-31T16:15:12.857 に答える