我试图在 shell 脚本中从用户那里读取多个项目,但没有运气。目的是首先读取文件列表(从标准输入管道读取),然后再读取两次以交互方式获取两个字符串。我要做的是阅读要在电子邮件中附加的文件列表,然后是主题,最后是电子邮件正文。
到目前为止,我有这个:
photos=($(< /dev/stdin))
echo "Enter message subject"
subject=$(< /dev/stdin)
echo "Enter message body"
body=$(< /dev/stdin)
(加上我为了简洁而省略的错误检查代码)
但是,这可能会得到一个空的主题和正文,因为第二个和第三个重定向得到了 EOF。
我一直在尝试用 <&- 和其他东西关闭并重新打开标准输入,但它似乎并没有那样工作。
我什至尝试对文件列表使用分隔符,使用“while;read line”循环并在检测到分隔符时跳出循环。但这也不起作用(??)。
任何想法如何构建这样的东西?