前端之家收集整理的这篇文章主要介绍了
ubuntu – 如何在bash函数中使用heredoc?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在bash
函数中插入heredoc?
下面的简单示例导致错误:./heredoc_in_function.sh:10:语法错误:文件结束意外(期待“}”)
#!/bin/sh
my_function () {
cat <<HEREDOC
heredoc contents
HEREDOC
}
my_function
环境:
> Ubuntu 11.04(GNU / Linux 2.6.38-8-server x86_64)
> GNU bash,版本4.2.8(1)-release(x86_64-pc-linux-gnu)
你的
代码对我来说很好看,所以我将它复制一行换行,它对我有用:
> OSX 10.7,bash 3.2.48(1)-release(x86_64-apple-darwin11).
> Ubuntu 10.04.3,bash 4.1.5(1)-release(x86_64-pc-linux-gnu)
您是否可以手动重新键入文件,以确保您没有丢失或添加空格/制表符等?
另外,你是如何执行它的?我做了一个chmod x test.sh然后是./test.sh
编辑:当我在关闭HEREDOC的行开头添加空格时,我收到了与您相同的错误.
进一步说明:关闭HEREDOC背后的尾随空间也可能导致此问题