我有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文件,我不想这样做。
有什么方法可以向用户显示消息(“你的名字是什么?”)并读取输入?
答案 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