28

可能かどうかはわかりませんが、オプション付きの通常の実行可能ファイルのように動作するシェルスクリプトを書きたいと思っています。非常に単純な例として、実行可能に構成されたシェル スクリプト foo.sh を考えてみましょう。

    ./foo.sh
    ./foo.sh -o

コードfoo.shは次のように機能します

    #!/bin/sh
    if  ## option -o is turned on
        ## do something
    else
        ## do something different
    endif

それは可能ですか、それを行う方法は? ありがとう。

4

4 に答える 4

32
$ cat stack.sh 
#!/bin/sh
if  [[ $1 = "-o" ]]; then
    echo "Option -o turned on"
else
    echo "You did not use option -o"
fi

$ bash stack.sh -o
Option -o turned on

$ bash stack.sh
You did not use option -o

ご参考までに:

$1 = First positional parameter
$2 = Second positional parameter
.. = ..
$n = n th positional parameter

より適切で柔軟なオプションについては、次のスレッドを参照してください: getopts を使用して長いコマンド ライン オプションと短いコマンド ライン オプションを処理する

于 2013-01-25T00:33:47.157 に答える
4

はい、この目的のためにシェルビルトインgetoptsまたはスタンドアロンを使用できます。getopt

于 2013-01-25T00:38:06.123 に答える