0

スクリプト ファイルにこれら (一部) が含まれる既存のビルド スクリプトを作成しています。ビルド プロセスの一環として、このスクリプト ファイルを実行する必要があります。

#!/bin/sh

if  [ -z $1 ];  then
    help
elif [ $1 == 'test' ]; then 
test

誰かがこれが何を意味し、値がどこから供給されるのかを教えてもらえますか??

4

4 に答える 4

2

最初の引数 ( $1) が「空」の場合はhelp、それ以外の場合"CheckIn"は call を呼び出しますCheckIn

これは非常に基本的なものです。マニュアルページを読む必要があります。

于 2012-10-04T09:26:50.350 に答える
1

引数を指定してスクリプトを呼び出す必要があります。

/path/to/script.sh argument

さらに引数がある場合、それらは $1、$2、... として参照されます。

于 2012-10-04T09:26:49.630 に答える
1

実際、このスクリプトは次のように述べています。

  1. スクリプトが引数なしで呼び出された場合は、関数を呼び出しますhelp
  2. そうでなければ、スクリプトに渡される最初の引数がCheckIncall functionである場合CheckIn

例は次のとおりです。

#!/bin/sh

CheckIn() {
 echo "CheckIn called!!";
}

help () {
 echo "Help called!!";
}


if  [ -z $1 ];  then
   help
elif [ $1 == 'CheckIn' ]; then
   CheckIn
fi

したがって、このスクリプトに名前が付けられている場合、つまりtest.sh、実行の出力は次のようになります。

sh test.sh
出力:Help called!!

sh test.sh CheckIn
出力:CheckIn called!!

最後に、ログインしたユーザー シェルには、helpおよびという名前のスクリプトが組み込まれている可能性があることに注意してくださいCheckInhelpこの場合、これらのスクリプト/コマンドが呼び出され、 /という名前の関数が存在する必要はありませんCheckIn

于 2012-10-04T09:27:39.920 に答える
1

$1コマンド ラインでスクリプトに渡される最初の引数を参照します。たとえば、スクリプトが呼び出されmyscript.sh、それを で実行するとmyscript.sh foo$1foo.

if [ -z $1 ]$1の長さがゼロかどうかをチェックする if ステートメントです。その場合、helpスクリプトのこのポイントより上のどこかで定義 (またはソース) する必要がある関数を実行します。

elif [ $1 == 'CheckIn' ]$1かどうかをチェックCheckInし、そうであれば関数を実行しCheckInます。

見る:

初心者のための Bash ガイド: if の紹介

于 2012-10-04T09:27:53.713 に答える