1

いくつかのコマンド ライン入力名を受け取り、配列をコマンド ライン入力として受け取る bash プログラムを実行しようとしています。

すなわち、

#!/bin/bash
name1=$1
name2=$2
my_array_input=("dog" "cat" "lion")

この例では、入力として name1 と name2 があり、スクリプト内で my_array_input が宣言および設定されています。

私の実際のスクリプトでは、name1 と name2 を $1 と $2 として使用したいと考えていますが、ユーザーから (不明なサイズ/可変サイズ) my_array_input も取得できるようにしたいと考えています。ユーザーは、さまざまな長さの配列を入力でき、必要に応じて自分の動物の名前を入力できます...

すべての入力はコマンド ライン入力である必要があることに注意してください。

bash スクリプトを使用してこれを行うためのトリックはありますか?

ありがとう!

4

1 に答える 1

5

Bash スクリプト (または Unix ライクなオペレーティング システムの任意のプログラム) への引数は文字列のリストにすぎないため、記述したとおりに実行する方法はありませ

ただし、name1最初の引数、name22 番目の引数、および後続のすべてのmy_array_input引数に設定できます。

#!/bin/bash
name1="$1"
name2="$2"
my_array_input=("${@:3}")

上記のスクリプトの引数が の場合、 はfoo bar dog cat lion、は、は配列にname1なります。fooname2barmy_array_input(dog cat lion)

于 2013-09-10T23:17:53.787 に答える