我想知道如何实现以下内容:
test(){
cat>file<<'EOF'
abc
EOF
}
非常感谢。
答案 0 :(得分:9)
强:
删除EOF前面的空格(因此它本身就在一条线上而不是缩进)。
答案 1 :(得分:5)
来自bash(1)
:
If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter. This allows here-documents within shell scripts to be indented in a natural fashion.
它说tab
,在我的测试中,tab
有效,但空格没有:
#!/bin/bash
cat>file <<-END
hello
world
hello
END
echo done
(所有这些缩进都是制表符;关于代码的四个前导空格标记的有趣之处在于,在渲染文本中也只显示四个空格。)
答案 2 :(得分:1)
您的代码应该可以正常运行,您有什么具体要求吗?
#!/bin/sh
input() {
cat > file <<EOF
input
line
another line
EOF
}
input
编辑:将function input
更改为input()