cat > file << EOF 的用法

cat> 文件名<<eof  用来创建文件在这之后输入任何东西 都是在 文件里的输入完成之后EOF结尾  代表结束比如

cat > 1.txt <<eof12345eof

就是创建1.txt这个文件里面内容是 1 2 3 4 5

============================================cat <<EOF与cat <<-EOF的区别(原文:http://blog.csdn.net/apache0554/article/details/45508631)

两个都是获取stdin,并在EOF处结束stdin,输出stdout。


但是<<-是什么意思呢?


先来看man中的说明:


If the redirection operator is <<-, then all leading tab characters are stripped from input lines and  the  line  containing  delimiter.   


翻译过来的意思就是:如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。


这可以解决由于脚本中的自然缩进产生的制表符。


通俗一点的解释:


在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。


比如,下面的语句就不会出错:


 

  1. cat <<EOF
  2. Hello,world!
  3. EOF

如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。


而<<-就是为了解决这一问题:



  1. cat <<-EOF
  2. Hello,world!
  3. EOF

上面的写法,虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。


这就是<<和<<-的区别。

				
时间: 2024-11-05 11:55:33

cat > file << EOF 的用法的相关文章

cat &gt;file &lt;&lt; EOF

1.cat >file记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件.>是数据重导向,会将你输入的文本内容输出到file中. 2.cat <<EOF cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的:EOF是"end of file",表示文本结束符. 结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果. [范例]             ##------>使用cat >

详解Linux中的cat文本输出命令用法

作系统 > LINUX > 详解Linux中的cat文本输出命令用法 Linux命令手册   发布时间:2016-01-14 14:14:35   作者:张映    我要评论 这篇文章主要介绍了Linux中的cat文本输出命令用法,是Linux入门学习中的基础知识,需要的朋友可以参考下 cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的.一.功能cat主要有三大功能:1.一次显示整个文件. 复制代码 代码如下: $ cat filename 2.从键盘创建一个文件. 复

cat file | while read line的问题

或许你应该在其他脚本中见过下面的这种写法: while read line do … done < file 刚开始看到这种结构时,很难理解< file是如何与循环配合在一起工作的.因为循环内有很多条命令,而我们之前接触的重定向都是为一条命令工作的.这里有一个原则,这个原则掌握好了,这个问题就很简单了: 对循环重定向的输入可适用于循环中的所有需要从标准输入读取数据的命令: 对循环重定向的输出可适用于循环中的所有需要向标准输出写入数据的命令: 当在循环内部显式地使用输入或输出重定向,内部重定向覆

Linux下巧用cat与EOF实现文件的替换和追加

本文地址http://comexchan.cnblogs.com/,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢! ======================================================= 直接覆盖某文件内容或者新建某文件 ======================================================= 首先我们看待测试的文件一开始是不存在的 ll /tmp/ 然后执行测试 cat << EOF >/tm

采用cat与EOF组合添加多行内容防止变量解析的解决办法

[问题描述] 当采用cat与EOF组合添加多行内容时,若含有变量,则追加后的文件中是变量对应的的值,并不是变量本身. 如$a对应的值为111,执行以下命令后 cat >> /etc/profile << EOF $a $a EOF /etc/profile文件中最后两行内容为111与111,而不是我们所期望的$a与$a. [解决办法] 此问题也非常容易解决,只需在所有的$符号前面加一个转义"\"就可以了

cat结合EOF输入/输出多行

1.命令基本解释 cat:Concatenate FILE(s), or standard input, to standard output. EOF:"end of file"文件结束符 2者配合使用,可以解决多种shell写法: (1)实现多行自动输入,而非echo的单行输入 (2)在写一键部署脚本是,脚本中可以套用脚本 2.简单示例 (1)单行输入 #cat <<EOF >bashshell.sh #!/bin/sh echo "cat &&

使用cat和EOF生成 shell 脚本时会自动解析变量的解决办法

之前使用以下的用法,执行时会自动执行``里的语句,同时会把$变量变为空. cat <<- EOF >> /usr/local/reboot.sh #!/bin/sh DAY=`date +"%Y-%m-%d %H:%M"` echo "$DAY reboot" >> /usr/local/reboot.log reboot EOF 执行结果: #!/bin/sh DAY=2016-09-03 17:11 echo " r

cat和tac的用法

1.cat和tac的功能 cat从前往后显示文本文件内容tac与cat相反,从后往前显示文本文件内容 2.cat用法 $cat [-AbEnTv] [filename]选项与参数:-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已; -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!-E :将结尾的断行字符 $ 显示出来;-n :打印出行号,连同空白行也会有行号,与-b 的选项不同;-T :将 [tab] 键以 ^I显示出来;-v :列出一些不显示的特殊字符 3.例

深入PHP EOF(heredoc)用法详解

介绍下使用EOF heredoc方式,输出长段内容的方法, <?php $name = '姓名'; print <<<EOT <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>heredoc用法详解_www.cnblogs.com</title> &l