誰かが以下のコードが何を意味するのか教えてもらえますか?
NAME=`basename $0`
unset ISBOOT
if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
then
NAME=${NAME:3}
ISBOOT=1
fi
これはTomcat起動スクリプトにあります。この行は正確に何を意味しますか?
ベストアンサー1
実行中のスクリプト($NAME)(パスなし)のファイル名が「S」または「K」で始まる場合:
- $NAMEの最初の3文字を切り取ります。
- $ ISBOOTを1に設定
これが実際に意味するものは誰でも推測できます。これらの変数に対して何をするのかを知るには、スクリプト自体を調べる必要があります。
スクリプトはおそらく/etc/rc?.d/の下のinit.dスクリプトなので、「S」と「K」が重要なようです。このスクリプトは、「S」で始まるシンボリックリンク名を使用して処理されます。実行レベルの開始(例:開始)では、「K」は、実行レベルが終了したとき(たとえば終了)スクリプトが開始されることを意味します。 S=スタート、K=終了。
シンボリックリンクの名前は通常「S05scriptname」と「K10scriptname」で指定されるため、ファイル名の最初の3文字が切り捨てられます。注文するスクリプトが実行されます。そのため、「S01foo」は「S99bar」より先に実行されます。
したがって、最も重要なのは、sysv rcスクリプトの命名なしでスクリプト名を取得することです。
それはおそらく名前によって異なるタスクを実行するスクリプトだからです。
もう一度スクリプトを確認して、名前と ISBOOT==1 に基づいて実行される操作を確認する必要があります。