文章目录
Here Document免交互
什么是Here Document
Here document (here-document, here-text, heredoc, hereis, here-string, here-script)是一个文件文字或输入流文字:它是源代码文件的一部分,被视为它是一个单独的文件。该术语还用于使用类似语法,保留换行符和文本中的其他空格(包括缩进)的多行字符串文字形式。
Here Document 概述
使用I/O重定向的方式将命令列表提供给交互程序(I是in/O是out)
标准输入的一种替代品
语法格式
命令 <<标记 #自定义
...
...
标记 #自定义
Here Document 使用注意事项
标记可以使用任意合法字符
结尾的标记一定要顶格写,前面不能有任何字符
结尾的标记后面也不能有任何字符(包括空格)
开头标记前后的空格会被省略掉
Here Document常规用法
Here Document免交互
通过read命令接收输入并打印
[root@promote ~]# read a <<EOF #EOF可以自定义
> this is test
> QWQ
> EOF #收尾对应
[root@promote ~]# echo $a #每一行只对应一次交互
this is test
使用免交互给用户设置密码
[root@shell ~]# vim 222.sh
#!/bin/bash
useradd zhangsan
passwd zhangsan <<EOF
abc123
abc123
EOF
[root@shell ~]# chmod +x 222.sh
[root@shell ~]# ./222.sh
更改用户 zhangsan 的密码 。
新的 密码:无效的密码: 密码少于 7 个字符
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
Here Document变量设定
变量替换
#!/bin/bash
a="test.txt"
b=world
cat > $a <<AA
hello $b
AA
~
[root@promote test]# chmod +x test1.sh
[root@promote test]# ./test1.sh
[root@promote test]# cat test.txt
hello world
变量设定
[root@promote test]# vim test1.sh
#!/bin/bash
a="100"
b=$(cat <<AA
aaa
bbb
$a
AA
)
echo $b
[root@promote test]# sh test1.sh