0

我有需要执行以下操作的 shell 脚本: 1) shell 脚本需要将日志存储到日志文件中。2) shell 脚本需要提示用户消息并读取输入。

例子:

cat read-test.sh
echo -n "What is your name?"
read user_name

执行此脚本:

./read-test.sh >> read-test.log

预期用户提示:

What is your name?
rajiv

当我执行这个脚本时

./read-test.sh

我得到了想要的输出。

但是当我执行这个脚本时

./read-test.sh >> 读取-test.sh

“你叫什么名字?” 保存到我不想的 read-test.log 文件中。

有什么方法可以向用户显示消息(“你叫什么名字?”)并读取输入?

4

2 回答 2

2

使用-p选项 with read,它会打印标准错误提示,让您完全摆脱该echo语句。

read -p "What is your name? " user_name

由于提示写入标准错误,因此操作员不会将其包含在read-test.log其中>>

于 2012-07-09T19:10:22.213 回答
1

最佳答案取决于您为什么要这样重定向,但一种可能的快速解决方案是echo像这样更改您的行:

echo -n "What is your name?" > /dev/tty
于 2012-07-09T18:18:49.873 回答