如何将用户输入的值读入变量?

10

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

命令行

echo Please enter your name: 
$myName = ?
3个回答

20
你希望阅读:

你想要读取:

echo Please enter your name:
read name
echo $name

详见read(1)获取更多信息。


8
你可以在一行中完成它,像这样:

read -p "Please enter your name:" myName

要在脚本中使用变量
echo "The name you inputed is: $myName"
echo $myName

这在Cygwin上运行良好,但在AIX 7.1的ksh上不行 - Marcus的答案适用于两者。 - Straff
这个问题有一个Linux标签,所以我假设 OP 希望得到一个 Linux 的答案。AIX 是 IBM 开发的专有 Unix 分支,不是 Linux 的一部分。据我所知,在我使用过的所有 Linux 分支上都可以工作,并且它具有第一个答案没有的格式优势(因为使用 echo 后跟一个 read 语句会强制用户输入在新行上,而 read -p 则不会)。 - thebunnyrules
注意:-p 不是 POSIX - go2null
ksh 不支持 read -p(或者说,在 ksh 中,read-p 选项有不同的作用)。这个问题明确标记为 [tag:ksh] 并在问题文本中强调,但你仍然提供了一个 Bash 的答案。 - tripleee

0

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

read myName?"Please provide your name: "

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接