Shell编程之免交互(Here Document免交互、Here Document常规用法、Expect基本命令、Expect执行方式)

本文介绍了Shell编程中的Here Document,包括它的定义、概述、使用注意事项和常见用法,如免交互设置密码。此外,还详细讲解了Expect工具,用于自动化控制和测试,特别是如何进行交互操作,如`expect`、`send`、`spawn`等基本命令的使用,以及在创建用户和设置密码场景中的应用。
摘要由CSDN通过智能技术生成

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 
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值