28

いくつかの入力ファイルを持つスクリプトがあります。通常、これらは標準の場所に保存され、スクリプトによって呼び出されるデフォルトです。

ただし、入力を変更して実行する必要がある場合もあります。

スクリプトには現在、$A $B と $C の 3 つの変数があります。今はデフォルト以外の $B で実行したいのですが、明日はデフォルト以外の $A と $B で実行したいと思うかもしれません。

コマンドライン引数を解析する方法を調べました:

Bashでコマンドライン引数を解析するにはどうすればよいですか?

時々、コマンドライン引数によっていくつかの設定を行うにはどうすればよいですか?

自分の質問に答えるのに十分な評判ポイントがありません。ただし、解決策があります。

コマンド ラインから Bash スクリプトの変数をオーバーライドする

#!/bin/bash
a=input1
b=input2
c=input3
while getopts  "a:b:c:" flag
do
    case $flag in
        a) a=$OPTARG;;
        b) b=$OPTARG;;
        c) c=$OPTARG;;
    esac
done
4

2 に答える 2

73

次の方法でそれを行うことができます。Bash のマニュアル ページの「シェル パラメータの拡張」を参照してください。

#! /bin/bash

value=${1:-the default value}
echo value=$value

コマンドラインで:

$ ./myscript.sh
value=the default value
$ ./myscript.sh foobar
value=foobar
于 2013-05-30T12:34:37.723 に答える