网站建设自己怎么做,it培训机构怎么样,黄山旅游攻略必去景点,做化工回收的 做那个网站前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 什么是Here Document Here Document 是在Linux Shell 中的一种特殊的重定向方式#xff0c;它的基本的形式如下 cmd delimiter… 前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 什么是Here Document Here Document 是在Linux Shell 中的一种特殊的重定向方式它的基本的形式如下 cmd delimiterHere Document Content
delimiter它的作用就是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数。 比如在终端中输入cat EOF 系统会提示继续进行输入输入多行信息再输入EOF中间输入的信息将会显示在屏幕上。如下 fishmangos:~$ cat EOFFirst LineSecond LineThird Line EOFEOF
First Line
Second Line
Third Line EOF注 这个符号是终端产生的提示输入信息的标识符 这里要注意几点 EOF 只是一个标识而已可以替换成任意的合法字符作为结尾的delimiter一定要顶格写前面不能有任何字符作为结尾的delimiter后面也不能有任何的字符包括空格作为起始的delimiter前后的空格会被省略掉Here Document 不仅可以在终端上使用在shell 文件中也可以使用例如下面的here.sh 文件 cat EOF output.sh
echo hello
echo world
EOF使用 sh here.sh 运行这个脚本文件会得到output.sh 这个新文件里面的内容如下 echo hello
echo world实例 在命令行中通过 wc -l 命令计算 Here Document 的行数 $ wc -l EOF欢迎来到菜鸟教程www.runoob.com
EOF
3 # 输出结果为 3 行
$-l EOF欢迎来到菜鸟教程www.runoob.com
EOF
3 # 输出结果为 3 行
$ 我们也可以将 Here Document 用在脚本中例如 #!/bin/bash
# author:菜鸟教程
# url:www.runoob.comcat EOF
欢迎来到
菜鸟教程
www.runoob.com
EOF
# author:菜鸟教程
# url:www.runoob.comcat EOF
欢迎来到
菜鸟教程
www.runoob.com
EOF 执行以上脚本输出结果 欢迎来到
菜鸟教程
www.runoob.com
菜鸟教程
www.runoob.com /dev/null 文件 如果希望执行某个命令但又不希望在屏幕上显示输出结果那么可以将输出重定向到 /dev/null $ command /dev/null /dev/null /dev/null 是一个特殊的文件写入到它的内容都会被丢弃如果尝试从该文件读取内容那么什么也读不到。但是 /dev/null 文件非常有用将命令的输出重定向到它会起到禁止输出的效果。 如果希望屏蔽 stdout 和 stderr可以这样写 $ command /dev/null 21 /dev/null 21 注意0 是标准输入STDIN1 是标准输出STDOUT2 是标准错误输出STDERR。 Here Document的变形 delimiter 与变量 在Here Document 的内容中不仅可以包括普通的字符还可以在里面使用变量例如将上面的here.sh 改为 cat EOF output.sh
echo This is output
echo $1
EOF使用sh here.sh HereDocument 运行脚本得到output.sh的内容 echo This is output
echo HereDocument在这里 $1 被展开成为了脚本的参数 HereDocument 但是有时候不想展开这个变量怎么办呢可以通过在起始的 delimiter的前后添加 来实现例如将上面的here.sh 改为 cat EOF output.sh #注意引号
echo This is output
echo $1
EOF得到的output.sh 的内容为 echo This is output
echo $1« 变为 «- Here Document 还有一个用法就是将 « 变为 «-。 使用 - 的唯一变化就是Here Document 的内容部分每行前面的 tab (制表符)将会被删除掉这种用法是为了编写Here Document的时候可以将内容部分进行缩进方便阅读代码。