JP3698976B2 - Command line generator - Google Patents
Command line generator Download PDFInfo
- Publication number
- JP3698976B2 JP3698976B2 JP2000295386A JP2000295386A JP3698976B2 JP 3698976 B2 JP3698976 B2 JP 3698976B2 JP 2000295386 A JP2000295386 A JP 2000295386A JP 2000295386 A JP2000295386 A JP 2000295386A JP 3698976 B2 JP3698976 B2 JP 3698976B2
- Authority
- JP
- Japan
- Prior art keywords
- script
- command line
- code segment
- execution
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Description
【0001】
【発明の分野】
本発明はスクリプトのコマンドライン実行の分野に向けられている。さらに詳細には、スクリプトを実行するために必要とされる完全コマンドラインを生成する技術に関する。またさらに詳細には、スクリプトにおける未定義変数の値をユーザに入力させ、そのスクリプトの実行に必要な完全コマンドラインを生成する技術に関する。
【0002】
【発明の背景】
スクリプトとは、他のプログラムにより解読または実行されるコマンドのシーケンスまたはプログラムである。これに対し、コンパイルされたプログラムは、プロセッサによる直接実行のためにプロセッサの機械語コードに変換されたコマンドのシーケンスである。一般的にスクリプトは、コンパイルされるプログラムよりもコードについてより簡単でより速い。
【0003】
スクリプトは一般的にコマンドラインより実行される。ユーザはスクリプト名と、スクリプトに渡される引数を入力する。そのような引数はしばしばスクリプト内の未定義変数を表す。未定義変数は、最も一般的にはコマンドラインに付加される引数の形で、実行時に値がスクリプトに供給されるものである。
【0004】
図1は従来技術によるコマンドライン実行100の図である。ブロック102は、マニュアルで生成される全コマンドラインを示し、ユーザによりスクリプト言語インタプリタ104に入力される。さらに、コマンドラインに付加される引数として未定義変数の値を渡すために必要なフォーマットだけでなく、スクリプト内の未定義変数を思い出さなくてはならないという負荷がユーザにかかる。
【0005】
あるいは、全ての未定義変数をユーザに入力させるよう指示を与えるスクリプトを作成することも出来る。しかし、スクリプトに付加される専用のユーザインタフェース部分が必要となり、これは非常に複雑で長くなる。さらに、このような専用のユーザインタフェース部分はスクリプトに精通したユーザだけの使用にとどまる。なぜなら、彼はスクリプト内の未定義変数を知り、これら引数のフォーマットと同様、コマンドラインにおける引数として渡される必要があるものに関する知識があるからである。また、専用のユーザインタフェース部分はスクリプトの実行スピードを遅らせる。
【0006】
熟達したユーザにとっては、コマンドラインインタフェースはスクリプトを実行する上で非常に融通のきくツールである。また、スクリプト内の専用のユーザインタフェース部分とするよりは、むしろ、他の引数だけでなく、未定義変数を覚えて入力するという負担をユーザにかけることにより、スクリプトはより書きやすく、より短く、かつ、より速く実行することができる。
【0007】
しかしながら、この従来のコマンドライン生成において、不慣れなユーザにとっては、コマンドラインの実行はある人にはとってフラストレーションのもとであったり、また他の人にとっては全くの障壁であるかもしれない。一般的に、不慣れなユーザはスクリプトにおいて使用される未定義変数に慣れておらず、もし何らかの理由でユーザがこれら変数に気づいた場合でも、コマンドラインでこれら変数の値を入力すべきフォーマットを熟知していないケースが少なくない。結果、不慣れなユーザは、コマンドラインを完成させるために何度も試行錯誤を繰り返して悩むことになる。また、中にはコマンドを正確に作れない場合さえある。
【0008】
【発明の概要】
上述した問題を解決するため、本発明は、一つには、コマンドライン実行に熟達したユーザを対象としたスクリプトを多数の不慣れなユーザが使用を望むうえでの問題点を認識する。
【0009】
本発明は、また一つには、スクリプトのコマンドラインを生成する方法(および対応するソフトウェアと装置)を提供する。このようなコマンドライン生成においては、不慣れなユーザにスクリプトの全ての未定義変数の値を入力するよう指示を出し、他の必要な引数と同様、必要なフォームの引数として付加されるべき変数に必要な全ての値でコマンドラインを生成する。
【0010】
本発明は、また一つには、スクリプトのコマンドライン実行の方法(関連するソフトウェアおよび装置)を提供する。スクリプトは少なくとも1つの未定義変数を含み、その値はスクリプト実行時にコマンドラインにおける引数としてユーザにより入力されることを意図する。この方法は、(a)スクリプトを提供し、(b)コマンドラインにおける引数として値がユーザにより入力されることが意図される未定義変数のスクリプトにおける例(instance)を見出し、(c)ユーザに、少なくとも1つの未定義変数の値を入力するよう指示を出し、(d)ステップ(c)にて得られた値に対応する引数を有する完全なコマンドラインを生成することからなる。
【0011】
本発明は、また一つには、スクリプトのコマンドライン実行の方法(関連するソフトウェアと装置)を提供する。スクリプトは少なくとも1つの未定義変数を含み、その値はスクリプト実行時にコマンドラインにおける引数としてユーザにより入力されることが意図される。この方法は、(a)スクリプトを提供し、(b)スクリプトの第1ラインをテキストストリング(text sring)として取り扱い、(c)コマンドラインの引数としてユーザによって入力されることが意図される未定義変数に対応する全サブストリングのストリングを検索し、(d)ユーザに、対応する少なくとも1つの未定義変数の値を入力するよう指示を出し、(e)ステップ(d)にてユーザから受け取った少なくとも1つの値を記憶し、(f)スクリプトの残りのラインについてステップ(b)乃至ステップ(e)を繰り返し、(g)ステップ(e)にて記憶された値に対応する引数を有するスクリプトの完全なコマンドラインを生成することからなる。
【0012】
本発明の上記および他の目的は以下の詳細説明によりさらに明らかとなろう。しかし、本発明の範囲を逸脱することなく他の方法でも具体化出来ることは当業者にとって明らかである。
【0013】
【発明の詳細な記述】
図2は、本発明によるスクリプトライン生成200のブロック図である。ブロック202はスクリプトを表している。スクリプトはテキストファイルであることを思い出されたい。このようなスクリプトはグラフィカル・ユーザ・インタフェース(Graphical User Interface:GUI)スクリプタ204あるいはテキストエディタ206により生成が可能である。
【0014】
一旦生成が行われると、スクリプト202はコマンドラインジェネレータ208によるアクセスが可能となる。コマンドラインジェネレータ208はユーザにディスプレイ装置210を通してスクリプトにおける未定義変数の値を入力するよう指示する。ユーザはマニュアル入力装置212を通して未定義変数の値を通信する。コマンドラインジェネレータ208の出力はスクリプト言語インタプリタ104に渡される完全なコマンドラインである。
【0015】
本発明によるコマンドラインジェネレータ208は図4の例に示したように実行されることが望ましい。すなわち、図4ではプロセッサ402、ビデオディスプレイ装置(Video Display Device:VDD)406(図2の210に相当)、マウスあるいはキーボード(図2の装置212に相当)のようなユーザ入力装置408、およびメモリ装置404を備えたプログラムシステム400の形態をとる。メモリ404は、本発明によるコマンドラインジェネレータをプロセッサ402に生成させる1以上のプログラムもしくはスクリプトを記憶する。例えば、本発明の実施例においては、ツールコマンド言語(Tool Command Language:TCL)を用いて書かれている。コンピュータ読み取り可能メモリ404は、RAM、ROM、固定ハードディスクドライブ、あるいは、フロッピー(登録商標)ディスクやCDROMといったような非固定ディスクドライブ用の着脱式記憶媒体を備えることが出来る。本発明によるコマンドラインジェネレータをプロセッサ402に生成させるプログラムは、任意の接続412により遠隔ホスト410からプロセッサ402にダウンロードすることが可能である。プログラムが任意接続412を通してダウンロードされる時、プログラムが具現化されるコンピュータ読み取り可能媒体は伝播信号の形態をとる。
【0016】
本発明によるコマンドラインジェネレータの生成には、ルックアップテーブル(lookup table)へのアクセスのみならず、何回もの記憶作業と比較演算を伴う。このように、プロセッサ402は、無理なく確実に高速結果をもたらす十分な処理能力を有するものでなくてはならない。このような要求を満たすプロセッサの例として、Intel Inc.から市場に出されているペンティアム・ファミリがある。
【0017】
プロセッサ402はコマンドラインジェネレータ208のみならずインタプリタ104のプログラムも実行する。さらに、プロセッサ402は、GUIスクリプタ204あるいはテキストエディタ206のプログラムをも実行する。
【0018】
本発明によるコマンドラインジェネレータはかなり多くの数の言語に適応させることが出来る。特によく適合するものは、同時係属する出願の発明の名称となっている無線オートメーション・マネージャ・インタフェース言語(Wireless Automation Manager Interface Language:WAMIL)である。
【0019】
この言語名が示すように、WAMILは無線技術によりよく適合する。WAMILの正確なコンテキスト、そして、WAMILスクリプトとの関連における本発明によるコマンドライン生成技術の使用における正確なコンテキストを確認する目的において、ここで無線技術に関する短い説明を行う。
【0020】
無線通信網は大規模システムの例である。大規模システムは、1以上のユーザに一般にシステム性能をモニタさせ、また特に大規模システムの1以上のパラメータ状況をモニタさせるモニタリングシステムを備えることが多い。多くの場合、モニタリングシステムがユーザに情報を配信する方法が負担となっている。
【0021】
無線通信網は地理的地域にある無線ユニットに無線通信サービスを提供する。移動交換局(Mobile Switching Center:MSC)は、とりわけ、無線装置間の呼、および無線装置と有線装置との間の呼の確立とこれを維持する役割を持つ。このように、移動交換局は地理的地域内の無線装置と公衆交換電話回線網(Public Switched Telephone Network:PSTN)とを相互接続する。移動交換局によりサービスされる地理的エリアは「セル」と呼ばれる空間上の異なるエリアに分割される。ブロック図において、各セルは図式的に蜂の巣パターンの1つの六角形で表される。しかし、実際にはセルを取りまく地形のトポロジにより各セルは不規則な形状をなす。一般的に、各セルには基地局が配置され、基地局がセル内で無線装置と通信する際に使用する無線局(radio)とアンテナを備えている。また基地局は、基地局が通信リンクにより地理的エリア内の移動交換局と通信を行う際に使用する伝送装置も備えている。時々、1セルサイトが複数のセクタをその適用範囲とする。ここで、セルとセクタとを言い換えることは可能である。
【0022】
移動無線通信システムにおいて、基地局と無線装置は、フォワードリンク(forward link)およびリバースリンク(reverse link)により音声通信あるいはデータ通信を行う。フォワードリンクは少なくとも1つのフォワードチャネルにより基地局から無線装置に通信信号を搬送する。また、リバースリンクは少なくとも1つのリバースチャネルにより無線装置から基地局に通信信号を搬送する。無線装置と基地局とを如何にして移動通信システムにおいて通信させるかを決定するための計画案が多数ある。例えば、無線装置と基地局間の無線通信リンクは、時分割多元接続(Time-Division Multiple Access:TDMA)、周波数分割多元接続(Frequency-Division Multiple Access:FDMA)、符号分割多元接続(Code-Division Multiple Access:CDMA)等を含む異なる無線プロトコルに基づいて定義出来る。
【0023】
地理的地域内において、無線装置がセル間を移動するとき、移動交換局は、ハンドオフと呼ばれる、基地局間の呼をリアルタイムで交換する。現在、FDMA、TDMA、CDMA、およびGSMにおいて、セルの地理的適用範囲決定のためのプランニング(planning)を行うセルサイトは、絶え間のない調整を必要とするマニュアルによる集中的タスクとなる。セルのプランニングにおいて、有効性およびゾーン分けの規則(zoning rules)に基づき、地理的エリアのトポロジと適するアンテナサイトが選択される。一般的にこのような選択は最適でないにしても納得のいく範囲である。次にドライブテスト(drive test)と信号データのマニュアル収集が特に適用範囲エリア周辺にて実行される。次に送信/受信アンテナとパワーの伝送をマニュアルによる相互作用方式で調整し、呼の質を改善する。時々、周波数が隣接するセルと入れ替わり、かつ/もしくは伝送パワーの再調整がなされて適用範囲を改善する。時間外に及んでセルサイトの技術者が顧客からの苦情とセルサイトからドロップした呼のリポート(cellsite dropped call reports)を再確認して、再びマニュアルによりRF性能の最適化を試みる。
【0024】
ルーセントテクノロジーズ社は、無線通信システムのパラメータに関するデータの抽出と同様、ユーザがこの無線通信システムのパラメータを変更する際に使用出来るモニタリングシステムを開発した。このモニタリングシステムはTIpdunix(TI)インタフェース、ステータス・ディスプレイ・ページ(Status Display Page:SDP)インタフェース、またはAUTOPLEXリセント・チェンジ&検査データベース(AUTOPLEX Recent Change & Verification database:APXRCV)インタフェースを生成することが出来る。これらのインタフェースは個々に使用することが可能である。しかし、一般的にインタフェースのうちの1つから抽出した情報は、インタフェースの中から第2のインタフェースを何かしらの方法で使用するための決定を行う際に使用される。インタフェースを使用する際にユーザは離散プロセス(discrete process)を開始しなくてはならない。ウィンドウズを基礎とする環境においては各インタフェースセッションはそれ自身のウィンドウを有する。
【0025】
無線技術に関連するスクリプトは一般的に無線通信網のパラメータに対応する変数を含んでいる。このような多数の変数の例からいくつかをあげると、MSC(移動交換局)、CELL(セル数)、ANT(アンテナ)、CAT(クロックおよびトーンボードナンバ変数(clock and tone board number variable)、CCC(CDMAクラスタ・コントローラ数(CDMA clustor controller number))、CCU(CDMAチャネル・ユニット数(CDMA channel unit number))、およびCE(チャネル・エレメント数(channel element number)などがある。
【0026】
WAMIL言語は、コマンド、if−コンストラクトエレメント(if-construct elements)、およびwhile−コンストラクトエレメント(while-construct elements)を含んでいる。WAMILコマンドは、例えば、「TI:OP:CELL ARGUMENT」、「WAM:CONNECT SDP」、あるいは「WAM:GETSDP」等の「インタフェース:コマンド」のフォーマットを有する。言い換えると、WAMILコマンドはインタフェースを識別する第1のフィールドと、コマンドを識別する第2のフィールドを有する。実際、第1フィールドは第2フィールドのコマンドが有効なインタフェースを識別する。第1フィールドが第2フィールドに先行するか、もしくは第1フィールドが第2フィールドのヘッダーであり、例えばコロンのようなアルファベット文字にて分けられることが望ましい。
【0027】
WAMIL言語については、Gaspar Hernandez,IIIの、「マルチプルインタフェーススクリプト言語(Multiple Interface Scripting Language)」と題するルーセントテクノロジーズ社の出願にその詳細が述べられている。
コマンドのうちの1つは「GETSDP」コマンドである。このコマンドについては、
Gaspar Hernandez,IIIの「インジケータを表す非テキストディスプレイ生成データをテキスト変数に変換する技術(Technology to Translate Non-Text Display Generation Data Representing An Indicator Into Text Variables)」と題するルーセントテクノロジーズ社の出願にその詳細が述べられている。
WAMIL言語で書かれたスクリプトを使用するための望ましいコンテキストについては、Gaspar Hernandez,IIIの「リエゾンインタフェース(Liaison Interface)」と題するルーセントテクノロジーズ社の出願にその詳細が述べられている。
WAMIL言語によりよく適合するスクリプタおよびインタプリタの詳細は、Gaspar Hernandez,IIIの、「スクリプタおよびインタプリタ(Scriptor and Interpreter)」と題するルーセントテクノロジーズ社の出願にその詳細が述べられている。
【0028】
図3Aおよび図3Bは、本発明によるコマンドライン生成の具体例におけるステップを示したフローチャートである。このフローチャートはステップ300より開始する。例えばユーザは、プロセッサ402のテキストベースのオペレーティングシステムのコマンドライン(text-based operating system command line)から、あるいはプロセッサ402のウィンドウベースのオペレーティングシステム(window-based operating system)のアイコンをクリックすることにより、コマンド生成プログラムを実行するであろう。テキストベースのオペレーティングシステムにおいては、コマンドライン生成プログラム208は、ディスプレイ装置406上にテキストストリングを表示することにより未定義変数の値を入力するようユーザに指示を出す。ウィンドウズベース環境においては、プロセッサ402はダイアログボックス(またはウィンドウ)を生成して未定義変数の値を入力するようユーザに指示を出す。
【0029】
ステップ300にてコマンドライン生成プログラムが開始されると、ステップ302に進み、ここでスクリプトが提供される。テキストベース環境においては、スクリプト名が引数としてコマンドラインに提供される。ウィンドウベース環境においては、プログラム名がリストに現れたときユーザがこれをクリックする。
【0030】
スクリプトの提供がなされるとステップ304に進み、ここでスクリプト言語が識別される。コマンドラインジェネレータの要求は、スクリプトの中に埋め込まれたスクリプト言語を識別するテキストストリングを有していることである。この識別子は非実行コメント形式でスクリプトのはじめに埋め込まれていることが望ましい。また、スクリプト名は、例えばKornシェルスクリプトが「script.ksh」のように拡張子「.ksh」を有するように、スクリプト言語を識別する拡張子を有することが望ましい。
【0031】
コマンドラインジェネレータによりサポートされる全てのスクリプト言語について、このような全てのスクリプト言語を載せたスクリプト言語ルックアップテーブル(script language lookup table)をメモリ404内に有する。さらに、メモリ404は全スクリプト言語の全部の変数を含んだルックアップテーブルをも有する。コマンドラインジェネレータは正確なコマンド実行のためにまず初めにスクリプト言語識別判断を行わなくてはならない。
【0032】
ステップ306において、プロセッサ402は考察中のスクリプトの第1ライン、およびスクリプト言語ルックアップテーブルの第1ラインを取り出す。そして、その言語がサポートされているかどうかを判断する。プロセッサ402は先ず最初にスクリプト言語ルックアップテーブルのエントリとファイル名の拡張子とを比較することが望ましい。次に、必要であればプロセッサ402はスクリプト言語ルックアップテーブルのエントリとスクリプトの第1ラインのテキストサブストリングとを比較する。プロセッサ402は、これが合致するまで、あるいはスクリプト言語ルックアップテーブルの全エントリが完全網羅されるまでこの比較処理を実行する。全エントリが完全網羅された場合には、スクリプトがコマンドラインジェネレータによってサポートされていない言語で書かれているというエラープロンプト表示を返してくる。
【0033】
合致した場合、すなわち、ステップ304にてスクリプト言語が識別された場合、プロセッサ402は全スクリプト言語の変数を有する変数ルックアップテーブルを使用する。
【0034】
図3Aのフローチャートはステップ304からステップ308に進み、プロセッサ402はスクリプトにおける現在の(ここでは、次の)ラインを得る。次のステップ310において、プロセッサ402は考察中のスクリプトラインをテキストストリングとして取り扱う。ステップ312において、プロセッサ402はメモリ404の変数ルックアップテーブルにアクセスして第1変数ストリングを検索する。次にステップ314において、プロセッサ402は考察中のスクリプトラインのサブストリングと変数ストリングとを比較する。
【0035】
次の判断ステップ316において、合致するかどうかを判断する。合致しなかった場合、判断ステップ318に進み、現在の変数がルックアップテーブルにおける最終変数であるかを判断する。もしそうでなかった場合、ステップ320において、プロセッサ402はルックアップテーブルの次の変数を現在の変数に設定する。フローチャートステップはステップ320からステップ312に戻り、現在の変数(すなわち、次の変数)が検索される。
【0036】
ステップ316で合致した場合には判断ステップ322に進み、プロセッサ402はコマンドストリングに合致したサブストリングに続くサブストリングがあるかどうかを判断する。もしそれがなかった場合、プロセッサ402は、現在の変数に索引付けされているルックアップテーブルからのテキストストリングを用いることによりユーザに入力を促す。合致するサブストリングの後にスクリプトラインにおけるサブストリングがある場合にはステップ324に進み、ここでプロセッサ402は、ユーザに表示されるプロンプトストリングとしてスクリプトラインのこれら追加サブストリングを使用することにより未定義変数の値を入力するようユーザに指示を出す。
【0037】
フローチャートのステップは図3Aのステップ324とステップ326の各々から図3Bのステップ328に進む。ステップ328において、プロセッサ402はステップ324かステップ326のどちらかにより判断されたテキストストリングを用いてユーザ入力を促す。次のステップ330において、プロセッサ402は、例えばマウスあるいはキーボードのようなマニュアル入力装置408によりユーザにより入力された変数の値を保存する。
【0038】
フローチャートのステップはステップ330から判断ステップ332に進む。図3Bのステップステップ332において、考察中のスクリプトの現在のラインはスクリプトの最終ラインかどうかを判断する。もしそうでなかった場合、ステップ334においてプロセッサ402はスクリプトの次のラインを現在のラインに設定する。ステップはステップ334からステップ308に進み、ここでプロセッサ402はスクリプトの現在の次のラインを検索する。ステップ332で考察中のラインがスクリプトの最終ラインであると判断した場合はステップ336に進む。
【0039】
ステップ336において、プロセッサ402はステップ330において保存された未定義変数の値を検索し、付加引数としての値を用いて完全コマンドラインを生成する。そうすることにより、プロセッサ402はコマンドラインにより要求される正確な引数フォーマットに変数の値を置く。プロセッサ402は未定義変数がスクリプトに現れる順に引数を付加することが望ましい。
【0040】
次にステップ336からステップ338に進み、ここでプロセッサ402はインタプリタ104に完全コマンドラインを提供する。この後、ステップ338から最終ステップ340に進む。
【0041】
ステップ318において、現在の変数がルックアップテーブルの最終変数であると判断された場合、フローチャートは図3Bのステップ332に進む。スクリプトのラインに対して一致する変数が見つからなかった場合、それが未定義変数を含むラインであると仮定される。
【0042】
コマンドライン生成例をいくつかのスクリプト例を用いて説明する。
最初のスクリプト例はUNIX(登録商標) Kornシェルスクリプト言語により書かれている。
スクリプト No.1
ライン コマンド
01 #!/bin/ksh
02 #ACCOUNT
03 #CUSTOMER
04 exec xterm-title"$2" -e account_viewer $1 &
【0043】
スクリプトNo.1のライン1乃至ライン3は非実行コメントラインである。ライン1は、図3Aのステップ304においてシーク(seek)されるKornシェルプログラミング言語(Korn shell programming language)のテキストストリング識別子、すなわちKSHを含む。ライン2は、ライン4で列挙される未定義変数ACCOUNTを識別するコメントラインである。同様に、ライン3はやはりライン4で列挙される未定義変数CUSTOMERを識別する。ライン2とライン3もまた変数名テキストストリングに続くテキストストリングを有していない。従い、図3Aにおいてステップ324よりもむしろステップ326をプロセッサ402が用いてユーザに変数の値を入力するよう指示を出す。ステップ326によりアクセスされるルックアップテーブルの例を以下に提示する。
【0044】
ライン4にて、テキストストリング「exec」は付加された引数、すなわちテキストストリング「xterm」を実行するためのコマンドである。しかし「xterm」はそれ自身、顧客に応じて名付けられたウィンドウを開くためのX−ウィンドウズコマンドである。テキストストリング「-title」はウィンドウにタイトル付けさせるスイッチオプションである。テキストストリング「$2」はウィンドウのタイトルにて使用されるネームを表す未定義変数である。テキストストリング「-e」はプログラム(次の引数で識別された)をウィンドウ内で実行させるスイッチである。テキストストリング「account_viewer」はウィンドウ内で実行されるプログラム名である。テキストストリング「$1」はプログラムaccount_viewerにより表示されるアカウントを表す未定義変数である。テキストストリング「&」はバックグラウンドでの実行を示す。
【0045】
ライン4のコマンドは実際にコマンド内でネストされたコマンドである。UNIX(登録商標) Kornシェルは最も内側にネストされたコマンドで始まるコマンドラインを構文解析して外側にワークする。このように、UNIX(登録商標) Kornシェルにより遭遇する最初の未定義変数は、表示されるアカウントを表す変数「$1」である。このように、変数名ACCOUNTは、ライン3の変数名CUSTOMERの前のライン2に現れる。UNIX(登録商標) Kornシェルにより遭遇する第2の未定義変数は、ウィンドウに現れる顧客ネームを識別する「$2」である。このように、変数名CUSTOMERは第2の未定義変数としてライン3に現れる。
【0046】
スクリプト「account_viewer.ksh」、すなわちスクリプトNo.1の熟達したユーザは、スクリプトのライン4より必要とされる変数を渡すコマンドラインをマニュアル作成することが出来るであろう。しかし不慣れなユーザは困惑し、コマンドラインを正確に入力することはおそらく不可能であろう。
【0047】
第2スクリプト例はツールコマンド言語(Tool Command Language:TCL)で書かれたものである。
【0048】
スクリプトNo.2のライン1はテキストストリング「tcl」および「expect」を含む。このどちらかは、スクリプト言語はTCLであると識別する。再び、このテキストストリングは図3Aのステップ304によりシーク(seek)される。
【0049】
スクリプトNo.2のライン2乃至ライン4は使用されている未定義変数を列挙する。ライン3およびライン4は変数識別テキストストリングの後にテキストストリングを含んでいることを注意されたい。このように、プロセッサ402はステップ322からステップ324に向かい、後続するテキストストリングを用いてユーザ入力を促す。これに対し、ライン2はプロセッサ402をステップ322からステップ326に向かわせ、以下に列挙したルックアップテーブルのテキストストリングを使用してユーザ入力を促す。
【0050】
スクリプトNo.2を実行するコマンドライン(「sendmail」と名付けられている)は、sendmail.tcl recipients filename subject-indicating-textとなる。ここで、引数の順序は非常に重要である。もし不慣れなユーザが未定義変数を判断する場合には、付加引数に対する順序で推測を行わなくてはならない。3つの引数の順序には6つの置換が考えられる。すなわち、要求されるコマンドラインにおいて6つの試みが可能である。本発明によるコマンドラインジェネレータは、コマンドラインにおける引数として変数の値を付加する順序だけでなく、スクリプトの未定義変数を識別あるいは思い出さなくてはならないという負担をユーザから取り除く。
【0051】
ユーザに変数の値を入力するよう指示を出す際に、スクリプトNo.1とスクリプトNo.2の例のどちらかで使用されるスクリプト言語とテキストストリングの全変数を記憶する変数ルックアップテーブルの例を以下に記載する。
変数ルックアップテーブル(Look Up Table:LUT)
変数名 プロンプトストリング
ACCOUNT Please Enter The Customer Account Number
CUSTOMER Please Enter The Customer's Full Name
FILENAME Please Enter A File Name
RECIPIENTS Please Enter The File Name With The List Of Recipients
SUBJECT Please Enter A Subject Matter
本発明によるコマンドラインジェネレータは、変数セットをあらかじめ限定出来るあらゆるスクリプト言語による使用に適する。上記例はUNIX(登録商標) Kornシェルスクリプト言語およびツールコマンド言語に基づくものであり、また、本発明はWAMILスクリプト言語に特に適するものであるが、上述のように他のスクリプト言語にも適合する。
【0052】
スクリプトは本発明によるコマンドラインジェネレータによって書かれることを意図する。このようなスクリプトにおいては使用されている未定義変数を識別する非実行ラインをまず最初に有する。そのような各非実行ラインはおそらく1つだけ変数名テキストストリングを含むであろう。しかし、既存のスクリプトにおいてはそのような非実行ラインをスクリプトのトップに挿入する修正も非常に簡単に出来る。このようにほんの少しの努力で既存スクリプトをユーザフレンドリにすることが可能である。
【0053】
本発明によるコマンドラインジェネレータの長所は、コマンドラインに付加される引数としてこれら変数の値が提示されるべきフォーマットだけでなく、スクリプト内で使用されている未定義変数が何であるかを思い出さなくてはならない苦労からユーザを解放することである。このように、本発明は熟達したユーザ向けのスクリプトに関して、不慣れなユーザでもこのようなスクリプトが(実際的な方法で)使用出来るようにする。これに反して、従来技術においては不慣れなユーザがこのようなスクリプトを使用することを事実上不可能にしている。さらに、スクリプトライタが不慣れなユーザによる使用を考慮する場合、スクリプトライタはもはやマルチプル専用インタフェース部分をスクリプト内に挿入する必要がなくなる。スクリプトライタは本発明によるコマンドラインジェネレータの有用性に頼ることが出来るため、未定義変数を識別するコメントラインを(望ましくはスクリプトの初めに)挿入するだけでよい。
【0054】
以上、本発明の実施例を詳細に説明したが、同じようなものが様々な方法で実現可能である。このようなバリエーションは本願発明の精神と範囲から発展するものとして考慮しなければならない。本発明の範囲を逸脱することなく他の方法でも具体化出来ることは当業者にとって明らかである。
【図面の簡単な説明】
【図1】従来技術によるコマンドライン実行図である。
【図2】本発明によるコマンドライン生成の図である。
【図3A】本発明によるコマンドライン生成の実施例におけるステップを示したフローチャートである。
【図3B】本発明によるコマンドライン生成の具体的実施例におけるステップを示したフローチャートである。
【図4】本発明によるコマンドライン生成を実行するハードウェアのブロック図である。[0001]
FIELD OF THE INVENTION
The present invention is directed to the field of command line execution of scripts. More particularly, it relates to a technique for generating a complete command line required to execute a script. More specifically, the present invention relates to a technique for causing a user to input a value of an undefined variable in a script and generating a complete command line necessary for executing the script.
[0002]
BACKGROUND OF THE INVENTION
A script is a sequence of commands or a program that is decoded or executed by another program. In contrast, a compiled program is a sequence of commands that have been converted to processor machine code for direct execution by the processor. In general, scripts are easier and faster on code than compiled programs.
[0003]
Scripts are generally run from the command line. The user enters the script name and arguments passed to the script. Such arguments often represent undefined variables in the script. Undefined variables are most commonly in the form of arguments added to the command line, whose values are supplied to the script at runtime.
[0004]
FIG. 1 is a diagram of
[0005]
Alternatively, you can create a script that prompts the user to enter all undefined variables. However, a dedicated user interface part added to the script is required, which is very complicated and long. Furthermore, such a dedicated user interface portion is limited to use only by users who are familiar with scripts. Because he knows the undefined variables in the script and knows what needs to be passed as arguments on the command line as well as the format of these arguments. The dedicated user interface part slows down the script execution speed.
[0006]
For experienced users, the command line interface is a very flexible tool for executing scripts. Also, rather than having a dedicated user interface part in the script, the script is easier to write, shorter, by putting the burden of remembering and entering undefined variables, not just other arguments, And it can run faster.
[0007]
However, in this conventional command line generation, for an unfamiliar user, command line execution may be frustrating for some people or a total barrier for others. . In general, unfamiliar users are not familiar with undefined variables used in scripts, and if you become aware of these variables for any reason, you are familiar with the format in which you should enter the values for these variables on the command line. There are many cases that are not. As a result, unfamiliar users will suffer from trial and error over and over to complete the command line. Also, there are even cases where the command cannot be made accurately.
[0008]
SUMMARY OF THE INVENTION
In order to solve the above-described problems, the present invention recognizes, in part, a problem that many inexperienced users desire to use scripts intended for users who are proficient in command line execution.
[0009]
The present invention also provides, in part, a method (and corresponding software and apparatus) for generating a script command line. In such a command line generation, an inexperienced user is instructed to enter the values of all undefined variables in the script and, like other required arguments, variables that should be added as required form arguments. Generate a command line with all necessary values.
[0010]
The present invention also provides, in part, a script command line execution method (related software and apparatus). The script contains at least one undefined variable whose value is intended to be entered by the user as an argument on the command line when the script is executed. This method provides (a) a script, (b) finds an instance in an undefined variable script that is intended to be entered by the user as an argument on the command line, and (c) gives the user , Instructing to input the value of at least one undefined variable, and (d) generating a complete command line with arguments corresponding to the values obtained in step (c).
[0011]
The present invention also provides, in part, a script command line execution method (related software and apparatus). The script contains at least one undefined variable whose value is intended to be entered by the user as an argument on the command line when the script is executed. This method provides (a) a script, (b) treats the first line of the script as a text sring, and (c) an undefined that is intended to be entered by the user as a command line argument. Search all substring strings corresponding to the variable, (d) instruct the user to enter the value of at least one corresponding undefined variable, and (e) receive from the user in step (d) Store at least one value, (f) repeat steps (b) through (e) for the remaining lines of the script, (g) for scripts with arguments corresponding to the values stored in step (e) Consists of generating a complete command line.
[0012]
These and other objects of the present invention will become more apparent from the following detailed description. However, it will be apparent to those skilled in the art that other methods can be implemented without departing from the scope of the invention.
[0013]
Detailed Description of the Invention
FIG. 2 is a block diagram of a
[0014]
Once generated, the
[0015]
The
[0016]
The generation of a command line generator according to the present invention involves not only access to a lookup table, but also a number of storage operations and comparison operations. As such, the
[0017]
The
[0018]
The command line generator according to the invention can be adapted to a very large number of languages. Particularly well suited is the Wireless Automation Manager Interface Language (WAMIL), which is the name of the invention of the co-pending application.
[0019]
As the language name suggests, WAMIL is a better fit for wireless technology. For the purpose of ascertaining the exact context of WAMIL and the exact context in use of the command line generation technique according to the present invention in the context of WAMIL scripts, a brief description of wireless technology will now be provided.
[0020]
A wireless communication network is an example of a large-scale system. Large scale systems often include a monitoring system that allows one or more users to generally monitor system performance, and in particular to monitor one or more parameter conditions of the large scale system. In many cases, the method of distributing information to the user by the monitoring system is a burden.
[0021]
The wireless communication network provides wireless communication services to wireless units in a geographical area. A Mobile Switching Center (MSC) is responsible for, among other things, establishing and maintaining calls between wireless devices and calls between wireless devices and wired devices. In this way, the mobile switching center interconnects wireless devices in a geographical area and a public switched telephone network (PSTN). The geographical area served by the mobile switching center is divided into different areas in space called “cells”. In the block diagram, each cell is schematically represented by one hexagon in a honeycomb pattern. However, in actuality, each cell has an irregular shape due to the topology of the terrain surrounding the cell. Generally, a base station is arranged in each cell, and includes a radio station (radio) and an antenna used when the base station communicates with a radio apparatus in the cell. The base station also includes a transmission device that is used when the base station communicates with a mobile switching center in a geographical area through a communication link. Sometimes one cell site covers multiple sectors. Here, it is possible to paraphrase a cell and a sector.
[0022]
In a mobile radio communication system, a base station and a radio apparatus perform voice communication or data communication through a forward link and a reverse link. The forward link carries communication signals from the base station to the wireless device via at least one forward channel. The reverse link also carries communication signals from the wireless device to the base station via at least one reverse channel. There are many plans for determining how to communicate between a wireless device and a base station in a mobile communication system. For example, a wireless communication link between a wireless device and a base station includes time division multiple access (TDMA), frequency division multiple access (FDMA), code division multiple access (Code-Division). It can be defined based on different radio protocols including Multiple Access (CDMA).
[0023]
When a wireless device moves between cells within a geographic area, the mobile switching center exchanges calls between base stations, called handoffs, in real time. Currently, in FDMA, TDMA, CDMA, and GSM, cell site planning for determining the geographical coverage of a cell is a manual and intensive task that requires constant adjustment. In cell planning, a geographic area topology and a suitable antenna site are selected based on effectiveness and zoning rules. In general, such a choice is acceptable if not optimal. Next, a drive test and manual collection of signal data are performed, especially around the coverage area. Next, the transmission / reception antenna and power transmission are adjusted by manual interaction method to improve call quality. Occasionally, the frequency is swapped with neighboring cells and / or the transmit power is readjusted to improve coverage. Overtime, cell site engineers reconfirm customer complaints and cell site dropped call reports and attempt to optimize RF performance manually.
[0024]
Lucent Technologies, Inc. has developed a monitoring system that can be used when a user changes the parameters of the wireless communication system, as well as extracting data about the parameters of the wireless communication system. The monitoring system can generate a TIpdunix (TI) interface, a Status Display Page (SDP) interface, or an AUTOPLEX Recent Change & Verification Database (APXRCV) interface. These interfaces can be used individually. However, information extracted from one of the interfaces is typically used in making a decision to use the second interface in some way from among the interfaces. When using the interface, the user must initiate a discrete process. In a Windows-based environment, each interface session has its own window.
[0025]
Scripts related to wireless technology generally include variables corresponding to the parameters of the wireless communication network. Some examples of such a large number of variables are MSC (Mobile Switching Center), CELL (number of cells), ANT (antenna), CAT (clock and tone board number variable), There are CCC (CDMA clustor controller number), CCU (CDMA channel unit number), and CE (channel element number).
[0026]
The WAMIL language includes commands, if-construct elements, and while-construct elements. The WAMIL command has a format of “interface: command” such as “TI: OP: CELL ARGUMENT”, “WAM: CONNECT SDP”, or “WAM: GETSDP”. In other words, the WAMIL command has a first field that identifies the interface and a second field that identifies the command. In fact, the first field identifies the interface in which the command in the second field is valid. Preferably, the first field precedes the second field, or the first field is the header of the second field and is separated by an alphabetic character such as a colon.
[0027]
The WAMIL language is described in detail in Gaspar Hernandez, III's Lucent Technologies application entitled "Multiple Interface Scripting Language".
One of the commands is a “GETSDP” command. For this command,
Gaspar Hernandez, III's Lucent Technologies application entitled “Technology to Translate Non-Text Display Generation Data Representing An Indicator Into Text Variables” It is stated.
The preferred context for using scripts written in the WAMIL language is described in detail in the Lucent Technologies application entitled “Liaison Interface” by Gaspar Hernandez, III.
Details of the scripters and interpreters that better fit the WAMIL language are described in detail in Gaspar Hernandez, III's Lucent Technologies application entitled "Scriptor and Interpreter".
[0028]
3A and 3B are flowcharts illustrating steps in a specific example of command line generation according to the present invention. This flowchart starts from
[0029]
When the command line generation program is started in
[0030]
When the script is provided, the process proceeds to step 304 where the script language is identified. The command line generator request is to have a text string that identifies the scripting language embedded in the script. This identifier is preferably embedded in the beginning of the script in a non-executable comment format. The script name preferably has an extension that identifies the script language, such that a Korn shell script has an extension “.ksh” such as “script.ksh”.
[0031]
For all script languages supported by the command line generator, there is a script language lookup table in
[0032]
In step 306, the
[0033]
If there is a match, that is, if a script language is identified in
[0034]
The flowchart of FIG. 3A proceeds from
[0035]
In the
[0036]
If there is a match at
[0037]
The steps in the flowchart proceed from
[0038]
The step of the flowchart proceeds from
[0039]
At
[0040]
Step 336 then proceeds to step 338 where the
[0041]
If it is determined in
[0042]
An example of command line generation will be described using some script examples.
The first example script is UNIX(Registered trademark) Written in the Korn shell script language.
Script No.1
line command
01 #! / Bin / ksh
02 #ACCOUNT
03 #CUSTOMER
04 exec xterm-title "$ 2" -e account_viewer $ 1 &
[0043]
Lines 1 to 3 of script No. 1 are non-execution comment lines. Line 1 includes a Korn shell programming language text string identifier, or KSH, that is sought in
[0044]
In line 4, the text string “exec” is a command for executing the added argument, that is, the text string “xterm”. However, “xterm” is itself an X-Windows command for opening a window named according to the customer. The text string “-title” is a switch option that causes the window to be titled. The text string “$ 2” is an undefined variable representing the name used in the window title. The text string “-e” is a switch that causes the program (identified by the next argument) to run in the window. The text string “account_viewer” is the name of the program executed in the window. The text string “$ 1” is an undefined variable representing an account displayed by the program account_viewer. The text string “&” indicates background execution.
[0045]
The command on line 4 is actually a nested command. UNIX(Registered trademark) The Korn shell parses the command line starting with the innermost nested command and works outward. UNIX like this(Registered trademark) The first undefined variable encountered by the Korn shell is the variable “$ 1” representing the account being displayed. Thus, the variable name ACCOUNT appears on line 2 before the variable name CUSTOMER on line 3. UNIX(Registered trademark) The second undefined variable encountered by the Korn shell is “$ 2” which identifies the customer name that appears in the window. Thus, the variable name CUSTOMER appears on line 3 as the second undefined variable.
[0046]
A skilled user of script “account_viewer.ksh”, ie script No. 1, would be able to manually create a command line that passes the required variables from line 4 of the script. However, unfamiliar users are confused and it is probably impossible to enter the command line correctly.
[0047]
The second script example is written in a tool command language (TCL).
[0048]
Line 1 of Script No. 2 contains the text strings “tcl” and “expect”. Either of these identifies the scripting language as TCL. Again, this text string is seeked by
[0049]
Lines 2 to 4 of the script No. 2 list used undefined variables. Note that lines 3 and 4 contain a text string after the variable identification text string. Thus, the
[0050]
The command line for executing script No. 2 (named “sendmail”) is sendmail.tcl recipients filename subject-indicating-text. Here, the order of the arguments is very important. If an unfamiliar user determines an undefined variable, he must make a guess in the order of the additional arguments. There are six possible substitutions in the order of the three arguments. That is, 6 attempts are possible in the required command line. The command line generator according to the present invention removes from the user not only the order of adding variable values as arguments on the command line, but also the burden of having to identify or remember undefined variables in the script.
[0051]
Example of a variable lookup table that stores all variables of the script language and text string used in either script No. 1 or script No. 2 when instructing the user to enter the value of the variable Is described below.
Variable Look-up Table (Look Up Table: LUT)
Variable name Prompt string
ACCOUNT Please Enter The Customer Account Number
CUSTOMER Please Enter The Customer's Full Name
FILENAME Please Enter A File Name
RECIPIENTS Please Enter The File Name With The List Of Recipients
SUBJECT Please Enter A Subject Matter
The command line generator according to the present invention is suitable for use with any scripting language that can predefine a variable set. The above example is UNIX(Registered trademark) It is based on the Korn shell script language and the tool command language, and the present invention is particularly suitable for the WAMIL script language, but also adapts to other script languages as described above.
[0052]
The script is intended to be written by a command line generator according to the present invention. Such scripts first have a non-execution line that identifies the undefined variable being used. Each such non-execution line will probably contain only one variable name text string. However, existing scripts can be modified very easily by inserting such non-executable lines at the top of the script. In this way, it is possible to make existing scripts user-friendly with little effort.
[0053]
The advantage of the command line generator according to the present invention is not only the format in which the values of these variables should be presented as arguments added to the command line, but also the undefined variables used in the script. It is to free the user from the hard work that must not be done. In this way, the present invention makes it possible for unskilled users to use such scripts (in a practical way) with regard to scripts for proficient users. On the other hand, it is virtually impossible for users unaccustomed to use such scripts in the prior art. Furthermore, if the script writer considers use by an unfamiliar user, the script writer no longer needs to insert a multiple dedicated interface part into the script. Since the script writer can rely on the utility of the command line generator according to the present invention, it is only necessary to insert a comment line (preferably at the beginning of the script) that identifies undefined variables.
[0054]
As mentioned above, although the Example of this invention was described in detail, the same thing is realizable by various methods. Such variations should be considered as developing from the spirit and scope of the present invention. It will be apparent to those skilled in the art that other methods can be implemented without departing from the scope of the invention.
[Brief description of the drawings]
FIG. 1 is a command line execution diagram according to the prior art.
FIG. 2 is a diagram of command line generation in accordance with the present invention.
FIG. 3A is a flowchart illustrating steps in an embodiment of command line generation according to the present invention.
FIG. 3B is a flowchart illustrating steps in a specific embodiment of command line generation according to the present invention.
FIG. 4 is a block diagram of hardware for executing command line generation according to the present invention.
Claims (10)
(a)該スクリプトを提供する段階、
(b)該コマンドラインの引数として該ユーザがその値を入力する該未定義変数の該スクリプトにおけるインスタンスを見出す段階、
(c)少なくとも1つの該未定義変数をそれぞれ入力するよう該ユーザに指示を出す段階、及び
(d)完全コマンドラインを生成する段階であって、該完全コマンドラインの該機械への発信によって前記スクリプトの実行を開始し、該完全コマンドラインが段階(c)で得られた値に対応する引数を有する段階
からなることを特徴とする方法。A method for preparing a command line by a machine to initiate command line execution of a script, the script including at least one undefined variable for which a user enters its value as a command line argument during script execution. A method executed on the machine is executed prior to execution of the script, and the method executed on the machine comprises:
(A) providing the script;
(B) finding an instance in the script of the undefined variable for which the user enters its value as an argument on the command line;
(C) instructing the user to enter each of the at least one undefined variable; and (d) generating a complete command line, wherein the complete command line is transmitted to the machine. A method characterized by starting execution of a script, the complete command line comprising a step having an argument corresponding to the value obtained in step (c).
(b1)テキストストリングとして該スクリプトの第1ラインを取り扱う段階、及び
(b2)該未定義変数に対応する全サブストリングについて該テキストストリングを検索する段階を含み、
該段階(c)は、該段階(b2)で見出された少なくとも1つの対応する未定義変数の値をそれぞれ入力するよう該ユーザに指示を出すものであり、
該方法はさらに、
(e)該段階(c)で該ユーザから受け取った該1つ以上の値を記憶する段階、及び
(f)該スクリプトの残りのラインに対して該段階(b)乃至(c)および段階(e)を繰り返す段階
からなることを特徴とする方法。The method of claim 1, wherein step (b) comprises:
(B1) treating the first line of the script as a text string; and (b2) searching the text string for all substrings corresponding to the undefined variable;
The step (c) instructs the user to input the value of at least one corresponding undefined variable found in the step (b2), respectively.
The method further includes:
(E) storing the one or more values received from the user in step (c); and (f) steps (b)-(c) and steps ( e) repeating the step.
(e)該スクリプト実行のために該完全コマンドラインを機械へ提出する段階からなることを特徴とする方法。The method of claim 1, further comprising:
(e) A method comprising submitting the complete command line to a machine for execution of the script.
(a)該スクリプトを提供する段階、
(b)テキストストリングとして該スクリプトの第1ラインを取り扱う段階、
(c)該コマンドラインの引数として該ユーザがその値を入力する該未定義変数に対応する全サブスクリプトについて該テキストストリングを検索する段階、
(d)対応する少なくとも1つの該未定義変数の値を入力するよう該ユーザに指示を出す段階、
(e)該段階(d)で該ユーザから受け取った該1つ以上の値を記憶する段階、
(f)該スクリプトの残りのラインについて該段階(b)乃至(e)を繰り返す段階、及び、
(g)完全コマンドラインを生成する段階であって、該完全コマンドラインの該機械への発信によって前記スクリプトの実行を開始し、該完全コマンドラインが段階(e)で得られた値に対応する引数を有する段階
からなることを特徴とする方法。A method for preparing a command line by a machine to initiate command line execution of a script, the script including at least one undefined variable for which a user enters its value as a command line argument during script execution. A method executed on the machine is executed prior to execution of the script, and the method executed on the machine comprises:
(A) providing the script;
(B) treating the first line of the script as a text string;
(C) searching the text string for all subscripts corresponding to the undefined variable for which the user enters its value as an argument on the command line;
(D) directing the user to enter a value of the corresponding at least one undefined variable;
(E) storing the one or more values received from the user in step (d);
(F) repeating steps (b) through (e) for the remaining lines of the script; and
(G) generating a complete command line, starting execution of the script by sending the complete command line to the machine, wherein the complete command line corresponds to the value obtained in step (e); A method comprising the steps of having an argument.
該スクリプトを提供する第1コードセグメント、
該コマンドラインの引数として該ユーザがその値を入力する該未定義変数の該スクリプトにおけるインスタンスを見出す第2コードセグメント、
少なくとも1つの該未定義変数の値をそれぞれ入力するよう該ユーザに指示を出す第3コードセグメント、及び
完全コマンドラインを生成する第4コードセグメントであって、該完全コマンドラインの該コンピュータへの発信によって前記スクリプトの実行を開始し、該完全コマンドラインが該第3コードセグメントから得られた値に対応する因数を有する第4コードセグメント、
からなることを特徴とするコンピュータ読み取り可能記憶媒体。A computer readable storage medium containing a program for preparing a complete command line by a computer for starting a command line execution of a script, the script having a value as a command line argument when the script is executed by a user A program recorded on the computer-readable storage medium, including at least one undefined variable to be input, is executed prior to execution of the script, and the program recorded on the computer-readable storage medium is:
A first code segment providing the script;
A second code segment that finds an instance in the script of the undefined variable for which the user enters its value as an argument on the command line;
A third code segment for instructing the user to enter a value for each of the at least one undefined variable, and a fourth code segment for generating a complete command line, wherein the complete command line is transmitted to the computer A fourth code segment having a factor corresponding to the value obtained from the third code segment, the execution of the script by
A computer-readable storage medium comprising:
該第2コードセグメントは、
該スクリプトの第1ラインをテキストストリングとして取り扱う第1コードセグメント、及び
該未定義変数に対応する全サブストリングについて該テキストストリングを検索する第2コードセグメントを含み、
該第3コードセグメントは、該第2コードセグメントで見出された対応する少なくとも1つの未定義変数の値をそれぞれ入力するよう該ユーザに指示を出すものであり、該コンピュータ読み取り可能記憶媒体はさらに、
該第3コードセグメントを介して該ユーザから受け取った該1つ以上の値を記憶する第5コードセグメント、及び
該スクリプトの残りのラインについて該第2コードセグメントと第3コードセグメントとを繰り返すための第6コードセグメント
からなることを特徴とするコンピュータ読み取り可能記憶媒体。The computer readable storage medium of claim 6.
The second code segment is:
A first code segment that treats the first line of the script as a text string, and a second code segment that searches the text string for all substrings corresponding to the undefined variable;
The third code segment directs the user to each input a value of a corresponding at least one undefined variable found in the second code segment, the computer-readable storage medium further comprising: ,
A fifth code segment for storing the one or more values received from the user via the third code segment, and for repeating the second code segment and the third code segment for the remaining lines of the script A computer-readable storage medium comprising a sixth code segment.
該スクリプト実行のために該機械に該完全コマンドラインを渡す第5コードセグメントからなることを特徴とするコンピュータ読み取り可能記憶媒体。The computer-readable storage medium of claim 6, further comprising:
A computer readable storage medium comprising a fifth code segment that passes the complete command line to the machine for execution of the script.
該スクリプトの第1ラインをテキストストリングとして取り扱う第1コードセグメント、
コマンドラインの引数として該ユーザがその値を入力する該未定義変数に対応する全サブストリングについて該テキストストリングを検索する第2コードセグメント、
対応する少なくとも1つの未定義変数の値をそれぞれ入力するよう該ユーザに指示を出す第3コードセグメント、
該第3コードセグメントを介して該ユーザから受け取った該1つ以上の値を記憶する第4コードセグメント、
該スクリプトの残りのラインに対して該第1コードセグメントから第4コードセグメントを繰り返すための第5コードセグメント、及び
完全コマンドラインを生成する第6コードセグメントであって、該完全コマンドラインの該コンピュータへの発信によって前記スクリプトの実行を開始し、該完全コマンドラインが該第4コードセグメントから記憶された値に対応する因数を有する第4コードセグメント
からなることを特徴とするコンピュータ読み取り可能記憶媒体。A computer-readable storage medium containing a program for preparing a command line for starting command line execution of a script by a computer. The script inputs a value as an argument of the command line when the script is executed. A program recorded on the computer readable storage medium is executed prior to execution of the script, and the program recorded on the computer readable storage medium includes:
A first code segment that treats the first line of the script as a text string;
A second code segment that searches the text string for all substrings corresponding to the undefined variable for which the user enters its value as a command line argument;
A third code segment instructing the user to enter a value for each corresponding at least one undefined variable;
A fourth code segment for storing the one or more values received from the user via the third code segment;
A fifth code segment for repeating the first to fourth code segments for the remaining lines of the script, and a sixth code segment for generating a complete command line, the computer of the complete command line A computer readable storage medium comprising: a fourth code segment having a factor corresponding to a value stored from the fourth code segment, wherein execution of the script is initiated by outgoing to the complete command line.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/407877 | 1999-09-29 | ||
US09/407,877 US6668368B1 (en) | 1999-09-29 | 1999-09-29 | Variable-extracting command line generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001175481A JP2001175481A (en) | 2001-06-29 |
JP3698976B2 true JP3698976B2 (en) | 2005-09-21 |
Family
ID=23613907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000295386A Expired - Fee Related JP3698976B2 (en) | 1999-09-29 | 2000-09-28 | Command line generator |
Country Status (4)
Country | Link |
---|---|
US (1) | US6668368B1 (en) |
EP (1) | EP1100010A3 (en) |
JP (1) | JP3698976B2 (en) |
CA (1) | CA2319917A1 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003248559A (en) * | 2002-02-25 | 2003-09-05 | Sony Corp | Information processing device, terminal device and information processing system |
JP2004005441A (en) * | 2002-03-22 | 2004-01-08 | Toshiba Corp | Script processing device, interpreter, script processing method, script processing program and script program |
US7290263B1 (en) * | 2002-12-19 | 2007-10-30 | Extreme, Networks, Inc. | Method and system for a scriptable command line interface |
CN100386989C (en) * | 2003-09-23 | 2008-05-07 | 华为技术有限公司 | General command line inputting device based on man-machine interactive languages, and its method |
JP4595699B2 (en) * | 2005-06-21 | 2010-12-08 | 日立電線株式会社 | Network management terminal |
US7567257B2 (en) | 2005-12-16 | 2009-07-28 | Microsoft Corporation | Partition-based undo of partitioned object graph |
US7818726B2 (en) * | 2006-01-25 | 2010-10-19 | Microsoft Corporation | Script-based object adaptation |
CN100428696C (en) * | 2006-07-05 | 2008-10-22 | 杭州华三通信技术有限公司 | Method for providing order component resolving information |
US8209356B1 (en) * | 2008-01-14 | 2012-06-26 | Marvell International Ltd. | Direct command line parser |
US9632728B2 (en) | 2008-03-28 | 2017-04-25 | International Business Machines Corporation | Apparatus and method to establish a logical configuration for a data storage library |
PE20121418A1 (en) | 2009-07-23 | 2012-11-08 | Source Trace Systems Inc | MODIFICATION OF TERMINAL MACHINES AND SERVICE PROVIDERS USING AN UPDATE SERVER |
US10387140B2 (en) | 2009-07-23 | 2019-08-20 | S3G Technology Llc | Modification of terminal and service provider machines using an update server machine |
WO2012106901A1 (en) * | 2011-07-18 | 2012-08-16 | 华为技术有限公司 | Web-based script language editing method, system and web client |
US9226531B2 (en) | 2012-05-31 | 2016-01-05 | Under Armour, Inc. | Sportman's garment |
US11121952B2 (en) * | 2018-10-17 | 2021-09-14 | Cisco Technology, Inc. | Device health assessment data summarization using machine learning |
US11281480B2 (en) * | 2020-05-28 | 2022-03-22 | Sap Se | Enhancing parameter-less exit-calls from a command line interface |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485615A (en) * | 1992-06-10 | 1996-01-16 | Telefonaktiebolaget L M Ericsson | System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language |
GB9418244D0 (en) * | 1994-09-09 | 1994-10-26 | Int Computers Ltd | Graphical user interface for a computer system |
JP4533974B2 (en) * | 1996-08-01 | 2010-09-01 | 康 清木 | Heterogeneous database integration system |
US5850511A (en) * | 1996-10-28 | 1998-12-15 | Hewlett-Packard Company | Computer implemented methods and apparatus for testing a telecommunications management network (TMN) agent |
US5761272A (en) * | 1996-11-26 | 1998-06-02 | Mci Communications Corporation | Method of and system for performing telecommunications stress testing |
US5940620A (en) * | 1997-03-07 | 1999-08-17 | Ncr Corporation | Compiler with intermediate compiling mechanism |
US5937041A (en) * | 1997-03-10 | 1999-08-10 | Northern Telecom, Limited | System and method for retrieving internet data files using a screen-display telephone terminal |
JPH1139169A (en) * | 1997-07-18 | 1999-02-12 | Toshiba Corp | Compiling method, compiler, exception handler and program storage medium |
US5923867A (en) * | 1997-07-31 | 1999-07-13 | Adaptec, Inc. | Object oriented simulation modeling |
US6141660A (en) * | 1998-07-16 | 2000-10-31 | International Business Machines Corporation | Command line interface for creating business objects for accessing a hierarchical database |
-
1999
- 1999-09-29 US US09/407,877 patent/US6668368B1/en not_active Expired - Lifetime
-
2000
- 2000-09-18 EP EP00308089A patent/EP1100010A3/en not_active Withdrawn
- 2000-09-19 CA CA002319917A patent/CA2319917A1/en not_active Abandoned
- 2000-09-28 JP JP2000295386A patent/JP3698976B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1100010A2 (en) | 2001-05-16 |
EP1100010A3 (en) | 2004-07-21 |
US6668368B1 (en) | 2003-12-23 |
CA2319917A1 (en) | 2001-03-29 |
JP2001175481A (en) | 2001-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3698976B2 (en) | Command line generator | |
US6651241B1 (en) | Scriptor and interpreter | |
US5845062A (en) | System and method for monitoring network elements organized in data communication channel groups with craft interface ports | |
US11861341B2 (en) | Node selection method and apparatus | |
JPH09297734A (en) | Questioning and answering method | |
CN1530817A (en) | Guide of effective content: execution of task and structural content | |
US20040044523A1 (en) | Information processing apparatus and method, and program | |
EP2030429A2 (en) | Network access point detection and use | |
EP3627498B1 (en) | Method and system, for generating speech recognition training data | |
JP2001166939A (en) | Composite interface descriptive language | |
CN110162319A (en) | Application program update method, apparatus, computer equipment and storage medium | |
JP2001084147A (en) | Device and method for converting character string, and recording medium | |
KR20080044244A (en) | International regulatory compliance for ad hoc networking | |
CN109743745A (en) | The recognition methods of mobile network's access style, device, electronic equipment and storage medium | |
CN108597499B (en) | Voice processing method and voice processing device | |
US7630988B2 (en) | Computer product and session management method | |
CN112199470A (en) | Session-based customer complaint service method, intelligent terminal and storage medium | |
JP2021002326A (en) | Refinement of repair patterns for static analysis violations in software programs | |
CN111857752A (en) | PostgreSQL database installation method, device and equipment | |
JP3681969B2 (en) | Liaison interface | |
CN111813648A (en) | Automatic testing method and device applied to App, storage medium and electronic equipment | |
CN105912573A (en) | Data updating method and data updating device | |
KR100738039B1 (en) | Business logic processing method and apparatus in open mobile business supporting system | |
Palamà et al. | RAINSTORM: ReconnAIssaNce Sdr plaTfORM | |
CN107734591A (en) | The wireless public network connection method of intelligent terminal and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050524 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050706 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |