从命令行终端中获取用户输入并赋值给某个变量

现在我有这么一个诉求,需要从命令行终端中获取用户输入并赋值给某个变量,希望能这样使用:

#!/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 表示第二个参数,依此类推。此外,$# 表示传递给函数的参数数量,$@ 或 "$@" 表示所有传递给函数的参数。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注