3

最近、実行中の KornShell (ksh) スクリプトを変更したので質問します。変更を保存してからしばらくすると、実行プロセスが失敗しました。エラー メッセージから判断すると、実行中のプロセスは私の変更のすべてではなく一部を認識しているように見えました。これは、シェル スクリプトが呼び出されたときに、スクリプト全体がメモリに読み込まれないことを強く示唆しています。

この結論が正しければ、実行中のスクリプトに変更を加えることは避けるべきであることを示唆しています。

$ uname -a
SunOS blahblah 5.9 Generic_122300-61 sun4u sparc SUNW,Sun-Fire-15000
4

3 に答える 3

1

いいえ。シェル スクリプトは、行ごと、またはコマンドごとに読み取られ、その後に s が続きます。ただし、チャンクとして解釈される;ブロックなどのブロックは例外です。if ... fi

シェル スクリプトは、シェル コマンドを含むテキスト ファイルです。このようなファイルが、Bash を呼び出すときにオプション以外の最初の引数として使用され、-c オプションも -s オプションも指定されていない場合 (「Bash の呼び出し」を参照)、Bash はファイルからコマンドを読み取って実行し、終了します。この操作モードでは、非対話型シェルが作成されます。

コマンドラインでコマンドを手動で入力することにより、シェルがブロックの がコマンドを実行するfiのを待つことを示すことができます。if

http://www.gnu.org/software/bash/manual/bashref.html#Executing-Commands

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Scripts

于 2013-08-03T19:06:32.473 に答える