JP3698976B2 - Command line generator - Google Patents

Command line generator Download PDF

Info

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
Application number
JP2000295386A
Other languages
Japanese (ja)
Other versions
JP2001175481A (en
Inventor
ハーナンデッツ サード ガスパー
Original Assignee
ルーセント テクノロジーズ インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ルーセント テクノロジーズ インコーポレーテッド filed Critical ルーセント テクノロジーズ インコーポレーテッド
Publication of JP2001175481A publication Critical patent/JP2001175481A/en
Application granted granted Critical
Publication of JP3698976B2 publication Critical patent/JP3698976B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command 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)で書かれたものである。

Figure 0003698976
【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 command line execution 100 according to the prior art. Block 102 shows all command lines generated manually and entered into the script language interpreter 104 by the user. Furthermore, the user is burdened not only with the format required to pass the value of the undefined variable as an argument added to the command line, but also with the undefined variable in the script.
[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 script line generation 200 according to the present invention. Block 202 represents a script. Remember that the script is a text file. Such a script can be generated by a graphical user interface (GUI) scripter 204 or a text editor 206.
[0014]
Once generated, the script 202 can be accessed by the command line generator 208. Command line generator 208 instructs the user to enter the value of the undefined variable in the script through display device 210. The user communicates the value of the undefined variable through the manual input device 212. The output of the command line generator 208 is a complete command line that is passed to the script language interpreter 104.
[0015]
  The command line generator 208 according to the present invention is preferably implemented as shown in the example of FIG. That is, in FIG. 4, a processor 402, a video display device (VDD) 406 (corresponding to 210 in FIG. 2), a user input device 408 such as a mouse or keyboard (corresponding to the device 212 in FIG. 2), and a memory It takes the form of a program system 400 with a device 404. The memory 404 stores one or more programs or scripts that cause the processor 402 to generate a command line generator according to the present invention. For example, in the embodiment of the present invention, it is written using a tool command language (TCL). The computer readable memory 404 can be RAM, ROM, fixed hard disk drive, or floppy.(Registered trademark)A removable storage medium for a non-fixed disk drive such as a disk or CDROM can be provided. A program that causes processor 402 to generate a command line generator according to the present invention can be downloaded from remote host 410 to processor 402 over any connection 412. When the program is downloaded through the optional connection 412, the computer readable medium in which the program is implemented takes the form of a propagated signal.
[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 processor 402 must have sufficient processing power to reasonably and reliably deliver high speed results. An example of a processor that meets these requirements is the Pentium family marketed by Intel Inc.
[0017]
The processor 402 executes the program of the interpreter 104 as well as the command line generator 208. Further, the processor 402 also executes a program of the GUI scripter 204 or the text editor 206.
[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 step 300. For example, a user may click on the processor 402 text-based operating system command line or by clicking on the processor 402 window-based operating system icon. It will execute the command generator. In a text-based operating system, the command line generation program 208 instructs the user to enter the value of an undefined variable by displaying a text string on the display device 406. In a Windows-based environment, the processor 402 generates a dialog box (or window) and prompts the user to enter values for undefined variables.
[0029]
When the command line generation program is started in step 300, the process proceeds to step 302 where a script is provided. In a text-based environment, the script name is provided on the command line as an argument. In a window-based environment, the user clicks on the program name when it appears in the list.
[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 memory 404 that lists all such script languages. In addition, the memory 404 also has a lookup table that includes all variables for all script languages. The command line generator must first determine the script language identification for accurate command execution.
[0032]
In step 306, the processor 402 retrieves the first line of the script under consideration and the first line of the script language lookup table. It then determines whether the language is supported. The processor 402 preferably first compares the script language lookup table entry with the filename extension. Next, if necessary, processor 402 compares the script language lookup table entry with the text substring of the first line of the script. The processor 402 performs this comparison process until it matches or until all entries in the script language lookup table are fully covered. If all entries are fully covered, it returns an error prompt indicating that the script is written in a language not supported by the command line generator.
[0033]
If there is a match, that is, if a script language is identified in step 304, the processor 402 uses a variable lookup table with variables for all script languages.
[0034]
The flowchart of FIG. 3A proceeds from step 304 to step 308, where processor 402 obtains the current (here, next) line in the script. In the next step 310, the processor 402 treats the script line under consideration as a text string. At step 312, processor 402 accesses a variable lookup table in memory 404 to retrieve the first variable string. Next, in step 314, the processor 402 compares the substring of the script line under consideration with the variable string.
[0035]
In the next determination step 316, it is determined whether or not they match. If not, proceed to decision step 318 to determine if the current variable is the last variable in the lookup table. If not, at step 320, processor 402 sets the next variable in the lookup table to the current variable. The flowchart step returns from step 320 to step 312 to retrieve the current variable (ie, the next variable).
[0036]
If there is a match at step 316, the process proceeds to decision step 322 where the processor 402 determines whether there is a substring following the substring that matched the command string. If not, the processor 402 prompts the user by using a text string from a lookup table that is indexed to the current variable. If there are substrings in the script line after the matching substring, proceed to step 324 where processor 402 uses these additional substrings in the script line as prompt strings to be displayed to the user to define undefined variables. Instruct the user to enter the value of.
[0037]
The steps in the flowchart proceed from step 324 and step 326 in FIG. 3A to step 328 in FIG. 3B. At step 328, processor 402 prompts for user input using the text string determined by either step 324 or step 326. In the next step 330, the processor 402 stores the value of the variable entered by the user with a manual input device 408, such as a mouse or keyboard.
[0038]
The step of the flowchart proceeds from step 330 to decision step 332. In step 332 of FIG. 3B, it is determined whether the current line of the script under consideration is the last line of the script. If not, at step 334 the processor 402 sets the next line of the script to the current line. The step proceeds from step 334 to step 308 where the processor 402 retrieves the current next line of the script. If it is determined in step 332 that the line under consideration is the last line of the script, the process proceeds to step 336.
[0039]
At step 336, processor 402 retrieves the value of the undefined variable stored at step 330 and generates a complete command line using the value as an additional argument. By doing so, the processor 402 places the value of the variable in the exact argument format required by the command line. The processor 402 preferably adds arguments in the order in which undefined variables appear in the script.
[0040]
Step 336 then proceeds to step 338 where the processor 402 provides the complete command line to the interpreter 104. Thereafter, the process proceeds from step 338 to final step 340.
[0041]
If it is determined in step 318 that the current variable is the final variable in the lookup table, the flowchart proceeds to step 332 in FIG. 3B. If no matching variable is found for a script line, it is assumed to be a line containing undefined variables.
[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 step 304 of FIG. 3A. Line 2 is a comment line that identifies the undefined variable ACCOUNT listed in line 4. Similarly, line 3 identifies the undefined variable CUSTOMER, also listed in line 4. Lines 2 and 3 also have no text string following the variable name text string. Accordingly, in FIG. 3A, processor 402 uses step 326 rather than step 324 to instruct the user to enter the value of the variable. An example of a lookup table accessed by step 326 is presented below.
[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).
Figure 0003698976
[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 step 304 of FIG. 3A.
[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 processor 402 proceeds from step 322 to step 324 and prompts user input using the subsequent text string. In contrast, line 2 directs processor 402 from step 322 to step 326 and prompts for user input using the text strings in the lookup table listed below.
[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)

スクリプトのコマンドライン実行を開始するためのコマンドラインを機械によって準備するための方法であって、該スクリプトは、スクリプト実行時にコマンドラインの引数としてユーザがその値を入力する少なくとも1つの未定義変数を含み、該機械で実行される方法が前記スクリプトの実行に先立って実行され、該機械で実行される方法は、
(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).
請求項1記載の方法において、該段階(b)は、
(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.
請求項1に記載の方法において、該方法はさらに、
(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.
請求項1に記載の方法において、該スクリプトにおける少なくとも1つの該未定義変数は、無線通信システムのパラメータを表すことを特徴とする方法。  The method of claim 1, wherein the at least one undefined variable in the script represents a parameter of a wireless communication system. スクリプトのコマンドライン実行を開始するためのコマンドラインを機械によって準備するための方法であって、該スクリプトは、スクリプト実行時にコマンドラインの引数としてユーザがその値を入力する少なくとも1つの未定義変数を含み、該機械で実行される方法が前記スクリプトの実行に先立って実行され、該機械で実行される方法は、
(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つの未定義変数を含み、該コンピュータ読み取り可能記憶媒体に収録されたプログラムは該スクリプトの実行に先立って実行され、該コンピュータ読み取り可能記憶媒体に収録されたプログラムは、
該スクリプトを提供する第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:
請求項6記載のコンピュータ読み取り可能記憶媒体において、
該第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.
請求項6に記載のコンピュータ読み取り可能記憶媒体においてさらに、
該スクリプト実行のために該機械に該完全コマンドラインを渡す第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.
請求項8に記載のコンピュータ読み取り可能記憶媒体において、該プログラム具現化コンピュータ読み取り可能記憶媒体における少なくとも1つの未定義変数は、無線通信システムのパラメータに対応することを特徴とするコンピュータ読み取り可能記憶媒体。A computer readable storage medium of claim 8, at least one undefined variables in the program embodying a computer readable storage medium, a computer readable storage medium characterized by corresponding to the parameter of a wireless communication system. スクリプトのコマンドライン実行を開始するためのコマンドラインをコンピュータによって準備するためのプログラムを収録したコンピュータ読み取り可能記憶媒体であって、該スクリプトは、スクリプト実行時にコマンドラインの引数としてユーザがその値を入力する少なくとも1つの未定義変数を含み、該コンピュータ読み取り可能記憶媒体に収録されたプログラムは該スクリプトの実行に先立って実行され、該コンピュータ読み取り可能記憶媒体に収録されたプログラムは、
該スクリプトの第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.
JP2000295386A 1999-09-29 2000-09-28 Command line generator Expired - Fee Related JP3698976B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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