bashスクリプトファイルにパラメータを渡す

bashスクリプトファイルにパラメータを渡す

バージョンタグパラメータ(v1.3など)をbashスクリプトファイルに渡したいと思います。タグパラメータを含むファイルを表示します。${tag}端末でv1.3パラメータを渡したいです。このタグ値は頻繁に変更されます。誰もが次のbashスクリプトファイルにパラメータを渡す方法を教えてもらえますか?

#!/bin/bash
cd /path/to/file
git checkout -- .
git checkout tags/${tag}

答え1

いわゆる「位置パラメータ」$1などを使用できます$2

例えば

#!/bin/bash
cd /path/to/file
git checkout -- .
git checkout tags/"$1"

myscript tag これで or またはmyscript anothertag を実行でき、myscript testの値は$1入力した値になります。

答え2

1行を追加すると、スクリプトが必要に応じて機能するようになります。

#!/bin/bash
tag=$1
cd /path/to/file
git checkout -- .
git checkout tags/${tag}

その後、スクリプトの最初のコマンドライン引数を取得して変数に割り当てますtag

値にスペースを入れるには、$tag変数拡張を二重引用符で囲みます。

#!/bin/bash
tag=$1
cd /path/to/file
git checkout -- .
git checkout tags/"$tag"

成功時にのみgit操作を実行するには、cd各コマンドを前のコマンドの正常な完了に依存させます。

#!/bin/bash
tag=$1
cd /path/to/file &&
git checkout -- . &&
git checkout tags/"$tag"

または、コマンドのいずれかが失敗した場合は、スクリプトを自動的に終了させます。

#!/bin/bash -e
tag=$1
cd /path/to/file
git checkout -- .
git checkout tags/"$tag"

このスクリプトは特定のものを使用しないため、bash次の環境で簡単に実行できます/bin/sh

#!/bin/sh -e

tag=$1

cd /path/to/file
git checkout -- .
git checkout tags/"$tag"

答え3

位置パラメータを使用してスクリプトにパラメータを渡すことができます。

#!/bin/bash
cd /path/to/file
TAG=$1  # read the first paramater passed to your script like ./myscript v1.2
if [ "$TAG" != "" ]; then
    git checkout -- .
    git checkout tags/"$TAG"
else
    echo "Please enter a Tag "
    exit 1 ;
fi

また、対話型モードを使用してユーザーがスクリプトに 。

   #!/bin/bash
    read -p "Please enter tag: " TAG
     cd /path/to/file
    if [ -n "$TAG" ]; then
        git checkout -- .
        git checkout tags/"$TAG"
    else
        echo "Please run again and enter a Tag "
        exit 1 ;
    fi

関連情報