app
という名前のグラフィカルプログラムがあるとします。 。使用例:app -t 'first tab' -t 'second tab'
そのプログラムで2つの「タブ」を開きます。
問題は、コマンド(つまり、app
)をどのように実行できるかということです。 )bash
内から 引数の数が変わる可能性がある場合はスクリプトを作成しますか?
これを考慮してください:
#!/bin/bash
tabs=(
'first tab'
'second tab'
)
# Open the app (starting with some tabs).
app # ... How to get `app -t 'first tab' -t 'second tab'`?
上記のスクリプトに、app -t 'first tab' -t 'second tab'
と同等の効果を持たせたいです。 。このようなbashスクリプトはどのように書くことができますか?
編集:質問は、引数の配列を使用してコマンドライン引数をその場で作成することについて尋ねていることに注意してください。
承認された回答:
配列から引数を与えるのは簡単です、"${array[@]}"
個別の単語(引数)として配列エントリに展開されます。 -t
を追加するだけです フラグ。これを行うには、最初の配列をループし、引数の完全なリスト用に別の配列を作成して、-t
を追加します。 進行中のフラグ:
#!/bin/bash
tabs=("first tab" "second tab")
args=()
for t in "${tabs[@]}" ; do
args+=(-t "$t")
done
app "${args[@]}"
"[email protected]"
を使用します "${tabs[@]}"
の代わりに ハードコードされたリストの代わりに、スクリプトのコマンドライン引数を使用します。