2011-08-11 43 views

回答

5

对于古贝壳这里,文档,你有相匹配的标签究竟这意味着:

methods() { 
     cat <<! 
     start 
     stop 
     restart 
     reload 
     status 
     methods 
! 
} 

是,在该行的开始,但你可以做这样cat <<'^I!'棘手的事情,标志设置一个独立的分页,然后!

现在bash(以及可能更早的shell)修复了<<-变种,它在处理之前剥离数据行和结束标记中的所有前导制表符。这样的话,你仍然可以很好地缩进:

methods() { 
     cat <<-! 
     start 
     stop 
     restart 
     reload 
     status 
     methods 
     ! 
} 

但是,需要注意的条件:它去除标签,一般没有空格。如果在!字符之前的任何地方有空格(或任何非制表符,可打印或其他),它将不起作用。

如果您使用vi,就可以进入:set list看到非打印字符会好一点,否则xdod -xcb可以给你文件的十六进制转储。

+0

感谢它的工作 –

+0

早期的贝壳意味着'真正古老'。第七版Unix(1979)不支持它,但我相信System III(以及我几乎可以肯定的是System V)支持'带有短划线的'here doc'符号。 –

+0

谢谢你,@乔纳森,指出我的前进的几年:-) – paxdiablo

相关问题