1

antの実行に問題があります。ここに私の問題の単純化されたバージョンがあります。シェル スクリプト script1.sh があります。

export ANT_HOME=/opt/Ant
ant -version

これは機能します。しかし、別のスクリプト script2 を作成しようとすると:

cd /location/of/script1
sudo -E ./script1.sh | tee log.txt

エラーが表示されant: command not found.ます 誰でもこれが起こっている理由を知っていますか。

4

2 に答える 2

4

PATHの後に設定が失われているようですsudo。値を追加echo $PATHscript1.shて、前後の値を確認してください。または単に次のように定義script1.shします

export ANT_HOME=/opt/Ant
${ANT_HOME}/ant -version
于 2012-07-02T20:56:25.020 に答える
0

どのシェルを知らなかったり、スクリプトをもっと見たりしないと、何が起こっているのかを正確に知ることは困難です。しかし、script2 に ANT_HOME を認識させたい場合は、おそらく script1 を実行する必要がありsourceますevalここ を参照してください。また、パイプ '|' も知っています。Bash がサブシェル内で操作を実行すると、特定の状況下で問題が発生する可能性があります (Bash を使用している場合)。

編集:あなたが思っているバージョンのantを使用していることを再確認してください:

#!/bin/bash
# Capital A here seems suspicious to me...
export ANT_HOME=/opt/Ant
echo "`${ANT_HOME}/ant -version`"
于 2012-07-02T20:25:41.197 に答える