2017-02-06 3 views
0

script1.sh(ローカルサーバで実行)とscript2.sh(リモートサーバで実行してsshコマンドに渡します)という2つのシェルスクリプトがあります。私のscript1.shはUNIXサーバに接続しており、以下のようにscript2.shを実行しています。1つのシェルスクリプトから別のスクリプトに変数を返す方法

declare RESULT=$(sshpass -p 'password' ssh [email protected] "bash -s" < ./script2.sh) 

とscript2.sh私は、サーバー上で実行されてscript2.shからVAR1を返すようにしたいといくつかを返す必要がありますいくつかの計算を行い、

#!/bin/sh 
declare var1="fgte" 
return var1 

すなわちscript1.shスクリプトを呼び出すには、いくつかの変数を返します。 script1.shへの値。どうやってやるの?私はscript1.shでvar1の値を読む必要があります。私を助けてください。

+0

返品はご利用いただけません。 'echo'を使います。 – ceving

答えて

0

最も簡単な方法は、標準出力を使用し、中で結果をプリントアウトすることで、あなたのscript2.sh(あなたがやったようechoを使用して)、およびscript1.sh例えば、それを集めます

#!/bin/sh 
result=$(script2.sh $var) 

これは、子スクリプトから複数の値を返すときに、より複雑になります。また、解析/解析する必要があります。しかし、単一の価値については、単純で実用的なアプローチです。

シェルスクリプト終了コードとは異なります。これは、伝統的にスクリプトが正常に返されたかどうかを示すために使用されます。

関連する問題