我有这个脚本:
#!/usr/bin/env bash
main() {
while true; do
read -r -ep "> " input
history -s "$input"
echo "$input"
done
}
main
这对于单行字符串效果很好。
现在我希望允许用户输入多行字符串,例如如下所示:
> foo \
> bar
foobar
如何修改我的读取命令以允许此功能?
答案1
你明确地禁用反斜杠的特殊处理-r
。
如果您-r
从read
调用中删除,您将能够使用转义的换行符读取您的输入:
$ read input
hello \
> world
$ echo "$input"
hello world
将其与使用时发生的情况进行比较-r
(即通常你想做什么):
$ read -r input
hello \
$ echo "$input"
hello \
请注意,如果没有-r
,您将必须输入\\
才能读取单个反斜杠。
有关的: