现在我有这么一个诉求,需要从命令行终端中获取用户输入并赋值给某个变量,希望能这样使用:
#!/bin/bash
some_one="玉皇大帝"
getUserInput some_one "你打算将“祖先币”烧给谁?【$some_one】: "
编写 getUserInput 函数,实现这个神奇的自动读入用户输入封装。然后界面提示:
下面是getUserInput的实现代码:
#/bin/bash
# 从终端交互方式获取用户输入,并赋值给指定变量
# 使用方法:
# VAR="默认值"
# getUserInput VAR "请输入某某变量的值【$VAR】: "
getUserInput() {
local myvar="$1"
shift
# 打印提示字符串
echo -en "$@"
read data
if [ ! -z "$data" ] ; then
eval $myvar="$data"
fi
}
在 Bash Shell 编写的函数中,传递参数是通过位置参数来完成的。这些位置参数由 $1、$2、$3 等特殊变量表示,其中 $1 表示第一个参数,$2 表示第二个参数,依此类推。此外,$# 表示传递给函数的参数数量,$@ 或 "$@" 表示所有传递给函数的参数。