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. はkshのスクリプト
- 5. tclスクリプトで同じtclコードを実行できませんか?
- 6. Kshスクリプト:sshのままでスクリプトを続ける方法
- 7. expectスクリプトで入力バッファをどのようにフラッシュできますか?
- 8. bashスクリプトでexpectを使用する
- 9. kshスクリプトのsedを条件付きで使用する
- 10. 同じasp.netページでスクリプトと一緒に外部スクリプトを使用できますか?
- 11. bashスクリプトで長いコマンドを送信できないExpect
- 12. ExpectスクリプトのDo-while
- 13. Cisco Expectスクリプトのエラー
- 14. expectスクリプト内でbashスクリプトを実行する
- 15. kshスクリプトの最適化
- 16. kshスクリプトの実行時間
- 17. 同じNetBeansプロジェクトのClojureとJavaソース
- 18. 同じブラウザセッションで複数のスクリプトを起動できませんか?
- 19. Greasemonkeyスクリプトを同じページで複数回実行しますか?
- 20. JSONオブジェクトをPHPからjavascriptに同じスクリプトで渡します
- 21. TCPとUDPで同じsockaddr_inを使用できますか?
- 22. SpringとStrutsを同じJVMで実行できますか?
- 23. jQueryとDjangoを同じページで使用できますか?
- 24. Androidでは、同じアクティビティで同じクラスファイルを使用できますか?
- 25. リストビューの上にあるSQLite(ソースはListViewソースと同じ)
- 26. Expectスクリプト - さまざまな送信
- 27. 同じソースからのコメントの特定
- 28. SERVERサーバで同じソース/ターゲットテーブルでMERGEを使用する
- 29. UbuntuのperlスクリプトからTcl(expect)スクリプトを実行するコマンド
- 30. ajaxのソースは他の場所(同じサーバーにない)のhttpファイルにすることができますか?
あなたの質問の説明に役立つ[最小限で完全で検証可能なサンプルの作成方法](https://stackoverflow.com/help/mcve)を見てください。 – markp