提示用户使用bash命令替换

时间:2015-09-08 09:42:06

标签: bash input

我正在寻找一个单行提示用户输入多个输入并使用用户输入作为参数执行命令。

天真的方法是:

read -p shirt_size: shirt_size
read -p age: age
the_command some_complicated_arguments $shirt_size $age

不幸的是它很冗长。 这是一个表现相同的单行:

the_command some_complicated_arguments \
  `>&2 printf shirt_size:; head -n 1` `>&2 printf age:; head -n 1`

不幸的是,它既不紧凑也不可读。 我希望它具有以下可读性:

the_command some_complicated_arguments \
  `input shirt_size` `input age`

我更倾向于使用bash内置命令或Linux环境中常用的程序。

1 个答案:

答案 0 :(得分:2)

听起来像是一个功课问题,让你看看功能。如果你有这样的功能:

input() { read -p "$1:" user_input; echo "$user_input"; }

然后你的行:

the_command some_complicated_arguments "$(input shirt_size)" "$(input age)"

会提示并打印整行。虽然这对检查有效输入或无输入没有任何作用。