自定义终结符:EOF

1.EOF

在平时使用Shell的时候,我们可能对于EOF并不陌生,我们经常使用cat > file << EOF来批量写入文件,但我们其实对于EOF又很陌生,很多人都只知道EOF有这么一个用法,但其实并不知道EOF代表什么,EOF其实就是END of File,自定义终止符,为什么说是自定义呢?往下看就知道了。

cat > file << EOF
input file
EOF

上面的例子是多数人都会使用的批量文本重定向到文件,这是Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。

为什么这是自定义终结符呢?因为既然是自定义的,那就可以是任何符号

cat > file << E
input file
E

这个例子和上面那个例子的效果是一样的,<<后面可以跟任何字符。

2.<<EOF与<<-EOF

前面我们说了<<EOF一般跟cat搭配,那么<<-EOF又是什么东西呢?

一般我们在使用cat > file << EOF的时候,作为终结符的EOF必须顶格写,前面不能有空格什么的,但是cat > file <<- EOF,就不是这样了,<<-能把终结符前面的制表符给消除掉,这可以解决由于脚本中的自然缩进产生的制表符。

#!/bin/bash
cat > file << EOF
input file
	EOF
# 执行报错:test.sh:行4: 警告:立即文档在第 2 行被文件结束符分隔 (需要 `EOF')
#!/bin/bash
cat > file <<- EOF
input file
	EOF
# 以上会执行成功
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值