【问题标题】:How do I read a value from user input into a variable如何将用户输入中的值读取到变量中
【发布时间】:2011-10-11 18:48:53
【问题描述】:

在 ksh 中,我如何提示用户输入一个值,并将该值加载到脚本中的变量中?

命令行

echo Please enter your name: 

在脚本中

$myName = ?

【问题讨论】:

    标签: linux unix ksh


    【解决方案1】:

    你想阅读:

    echo Please enter your name:
    read name
    echo $name
    

    请参阅read(1) 了解更多信息。

    【讨论】:

      【解决方案2】:

      您可以在一行中完成,如下所示:

      read -p "Please enter your name:" myName
      

      在脚本中使用变量

      echo "The name you inputed is: $myName"
      echo $myName
      

      【讨论】:

      • 这在 cygwin 上运行良好,但不适用于 AIX 7.1 上的 ksh - Marcus 接受的答案适用于两者
      • 这个问题有一个 linux 标签,所以我假设 OP 想要一个 Linux 答案。 AIX 是 IBM 开发的 Unix 的专有分支,它不是 Linux 的一部分。据我所知,这在我使用过的所有 Linux 分支上都有效,并且它具有第一个答案没有的格式优势(因为使用 echo 后跟 read 语句强制在新行上使用输入,而读取 -p 没有)。
      • 注意:-p 不是 POSIX
      • ksh 不支持read -p(或者更确切地说,read-p 选项在ksh 中做了不同的事情)。此问题已明确标记为 ksh,并且在问题文本中得到了加强,但您仍然提供了 Bash 答案。
      【解决方案3】:

      ksh 允许您使用以下语法将提示指定为read 命令的一部分:

      read myName?"Please provide your name: "
      

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 2020-11-25
        • 1970-01-01
        • 2020-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-11
        • 1970-01-01
        相关资源
        最近更新 更多