kshで設定した環境変数とexpectコマンドを同じスクリプトで使用しようとしています。しかし、私は両方のソースをしようとすると、それは動作しません。 kshをソースし、同じスクリプトで期待する方法はありますか?kshとexpectを同じスクリプトでソースできますか?
答えて
Kornシェルではたとえば、あなたが他のスクリプトでドットシェル:
. ${other_script}
これは、親スクリプトと同じプロセスで実行されます。他のスクリプトは、親スクリプトで定義されている変数をすべて見ることができます。サブシェル(外部コマンドを実行する)を使用する場合は、最初に変数をエクスポートする必要があります。
expectスクリプトで環境変数を参照する場合(サブシェルで期待されるkshスクリプトによってエクスポートされたもの)、expectスクリプトはグローバル配列env
を参照する必要があります。あなたのkshスクリプトをエクスポートしMYPATH変数は、次に期待するサブシェル場合ことを意味たとえば、ここで-docのターミネータ(<<'END_EXPECT'
)の前後に引用符を追加
#!/usr/bin/ksh
. /path/to/ksh_stuff.sh
export FOO=bar
# other ksh stuff
expect <<'END_EXPECT'
source /path/to/expect_stuff.exp
send_user "FOO is $env(FOO)\n"
# other expect stuff
END_EXPECT
好きなものを$env(MYPATH)
しかし、他のスクリプトのソースはKSHで実行されます。まあ、それはないですか?これは、2番目のスクリプトがkshを入手するときにEXPECTコマンドを認識しないので目的を破る –
問題は私のexpectスクリプトでKSHに設定されている環境変数を使用する必要があるということです。これらをパラメータとして渡すことはできますか? –
参照への応答が更新されました$ env配列 – mao
を参照する可能性が期待全体here- docは単一引用符で囲まれているので、kshはその上でパラメータの置換を試みません。これは、expectスクリプトの変数をkshから隔離する有効な方法です。
- 1. 同じexpectスクリプトから2つのssh端末を起動できますか?
- 2. KSHスクリプト:-zと-a
- 3. expectスクリプトのinteract、expectとexitの違い
- 4. C#nunitアサーションエラー:expectとwasは同じです
- 5. はkshのスクリプト
- 6. tclスクリプトで同じtclコードを実行できませんか?
- 7. Kshスクリプト:sshのままでスクリプトを続ける方法
- 8. expectスクリプトで入力バッファをどのようにフラッシュできますか?
- 9. bashスクリプトでexpectを使用する
- 10. git add、expectスクリプト
- 11. kshスクリプトのsedを条件付きで使用する
- 12. 同じasp.netページでスクリプトと一緒に外部スクリプトを使用できますか?
- 13. bashスクリプトで長いコマンドを送信できないExpect
- 14. 同じスクリプトでPowerShellスクリプトとC#コードをコーディングする方法
- 15. JointJS同じソースとターゲットを持つリンク
- 16. expectスクリプトで計算を行うには?
- 17. SQLスクリプトで&と同じように
- 18. ExpectスクリプトのDo-while
- 19. Cisco Expectスクリプトのエラー
- 20. expectスクリプト内でbashスクリプトを実行する
- 21. kshスクリプトの実行時間
- 22. kshスクリプトの最適化
- 23. 同じNetBeansプロジェクトのClojureとJavaソース
- 24. Symfony 3:同じソースとターゲットのXLIFF?
- 25. 同じブラウザセッションで複数のスクリプトを起動できませんか?
- 26. Greasemonkeyスクリプトを同じページで複数回実行しますか?
- 27. JSONオブジェクトをPHPからjavascriptに同じスクリプトで渡します
- 28. jQueryとDjangoを同じページで使用できますか?
- 29. TensorflowとKerasを同じ意味で使用できますか?
- 30. 同じビルドでローカルエージェントとホステッドエージェントを使用できますか
あなたの質問の説明に役立つ[最小限で完全で検証可能なサンプルの作成方法](https://stackoverflow.com/help/mcve)を見てください。 – markp