1

我正在尝试运行一个 bash 程序,该程序需要一些命令行输入名称,然后将数组作为命令行输入。

IE,

#!/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为第一个参数、第二个name2参数以及所有后续参数:my_array_input

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

如果上述脚本的参数是foo bar dog cat lion,那么name1将是fooname2将是bar,并且my_array_input将是数组(dog cat lion)

于 2013-09-10T23:17:53.787 回答