我想像这样运行一个shell脚本(POSIX)。
#!/bin/sh
# this is a.sh
echo your age?
read age
echo "You are $age."
如果通过标准输入将其抛出到/ bin / sh
cat a.sh | /bin/sh -s
然后跳过这个问题。
我该怎么问这个问题?
答案 0 :(得分:2)
问题是/bin/sh
正在读取脚本,并且您的脚本正在读取输入,来自同一个输入文件:由cat a.sh
提供的管道。
一种解决方案是修改您的脚本以从终端直接读取 ,而不是标准输入,尽管这可能不是您想要的。
echo "your age?"
read age < /dev/tty
echo "Your age $age"
更好的解决方案是不从标准输入读取脚本;只需将其作为参数传递给/bin/sh
。
/bin/sh a.sh
答案 1 :(得分:-1)
尝试-n选项
echo -n "your age?"
read age
echo "Your age $age"