2016-11-28 21 views
-1

cpan(Comprehensive Perl Archive Network)モジュールのインストールを自動化するためのシェルスクリプトを作成しています。cpanモジュールのインストールを自動化するシェルスクリプト

#!/bin/bash 
perl -MCPAN -e shell 
o conf make_arg -I/"$PWD" 
o conf make_install_arg -I/"$PWD" 

最初のコマンドが実行され、cpanシェルに入りますが、それ以降のコマンドは検出されません。後のコマンドは別のシェルとして実行されていないと思います。 これについてのリードは感謝しています。

ありがとうございました。

答えて

2

bashスクリプトを作成していて、o conf ....はbashコマンドではありません。

リモートつまり、あなたが標準入力をリダイレクトするところから、ファイル内のすべての入力を提供するいずれかの

  • perl -MCPAN -e shell <my_commands.txtにより、CPANシェルを制御することができます。 CPANシェルが各コマンドの後に入力バッファをクリアするならば、これは失敗することに注意してください(私はそうではないと思いますが、それは可能性があります)。

  • がお気に入りのプログラミング言語を使用してCPANシェルを操縦するためにTelnetプロトコルを使用しexpectスクリプトを書きます。これはPerlに関するものなので、PerlのNet::Telnetモジュールを使うことができます。

  • CPANシェルはPerlで書かれているので、CPANモジュールに既にある機能を使って、Perlで完全に書くこともできます。まずCPANモジュールのソースコードを調べて、コマンド(例:conf)がPerlでどのように処理されるかを調べます。結局のところ、CPANシェルはこのモジュールの機能の1つに過ぎませんが、もちろんこれは一般に人が使用するものです。

+0

ありがとうございます。あなたの提供した最初の提案を試してみました。 –

0

bashhere documentsを使用してください。あなたのスクリプトは次のようになります:

最後にEND_OF_CPAN_COMMANDSの前にコマンドを追加できます。

関連する問題