sshexecタスクの変数に問題があります。私のbuild.xmlantスクリプトは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<project name="sshexecproject" basedir="." default="build">
<target name="build">
<sshexec
host="192.168.2.106"
username="root"
password="xxx"
commandResource="${basedir}/to_run.sh"
trust="true"
verbose="true"
failonerror="true"
/>
</target>
to_runスクリプトには、次の2つの変数があります。
#!/bin/bash
name="Pink Panther"
export name2="Panther Pink"
echo "Name: "
echo $name
echo "Name with export: "
echo $name2
ターミナルでスクリプトを実行すると、次の出力が得られます。
$ ./to_run.sh
Name:
Pink Panther
Name with export:
Panther Pink
すべてが正常に機能していることがわかります。しかし、antからbuild.xmlスクリプトを開始すると、次の出力が得られます。
...
[sshexec] Authentication succeeded (password).
[sshexec] cmd : #!/bin/bash
[sshexec] cmd :
[sshexec] cmd : name="Pink Panther"
[sshexec] cmd : export name2="Panther Pink"
[sshexec] cmd :
[sshexec] cmd : echo "Name: "
[sshexec] Name:
[sshexec] cmd : echo $name
[sshexec]
[sshexec] cmd : echo "Name with export: "
[sshexec] Name with export:
[sshexec] cmd : echo $name2
[sshexec]
[sshexec] Disconnecting from ...
リモートサーバーで、このスクリプトが空のエコーを作成していることがわかります。変数nameとname2は入力されていません。なんで?