在将用户保存到日志文件时提示用户输入消息并读取输入

时间:2012-07-09 18:14:41

标签: linux bash shell input

我有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>> read-test.sh

“你叫什么名字?”保存到read-test.log文件,我不想这样做。

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

2 个答案:

答案 0 :(得分:2)

-p选项与read一起使用,该选项会打印标准错误提示,允许您完全删除echo语句。

read -p "What is your name? " user_name

由于提示符已写入标准错误,因此read-test.log运算符不会将其包含在>>中。

答案 1 :(得分:1)

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

echo -n "What is your name?" > /dev/tty