【shell】多行重定向与免交互expect与ssh、scp的结合使用

目录

一、多行重定向

举例1:使用read命令接收用户的输入值会有交互过程

 举例2:设置变量的值

举例3:创建用户密码 

举例4:使用多行重定向写入文件中(以repo文件举例)

举例5:变量设定

二、免交互expect

ssh连接免交互 

定义变量

​编辑 使用位置变量的方式

测试题:给3台主机都创建test用户,并生成密码


一、多行重定向

可以理解为这是标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,可以直接产生一个文件,输入文件信息,常与非交互程序和命令一起使用

语法格式

命令<<   标记

....

......

标记

注意事项:

1、表示可以使用任意的合法字符(通用的字符是EOF表示end of file)

2、结尾的标记是一定要顶格写,前面不能有任何字符(包括空格)

3、结尾的标记后面也不能有任何字符(包括空格)

4、开头标记前后空格会被省略掉

5、单引号变量双引号

举例1:使用read命令接收用户的输入值会有交互过程

[root@localhost test]#read i <<EOF
> 10
> EOF
[root@localhost test]#echo $i
10

 举例2:设置变量的值

举例3:创建用户密码 

举例4:使用多行重定向写入文件中(以repo文件举例)

[root@localhost cs]#cat repo.sh 
#!/bin/bash
cat > /cs/http.repo <<EOF
[http]
name=http
baseurl=http://192.168.20.8/
gpgcheck=0
EOF

举例5:变量设定

Here Document 也支持使用变量,如果标记之间有变量被使用,会先替换变量值。如 果想要将一些内容写入文件,除了常规的方法外,也可以使用 Here Document。如果写入 的内容中包含变量,在写入文件时要先将变量替换成实际值,在结合 cat 命令完成写入。

[root@localhost cs]#cat repo.sh 
#!/bin/bash
ip="192.168.20.8"
filename="http.repo"
cat > /cs/${filename} <<EOF
[http]
name=http
baseurl=http://${ip}/
gpgcheck=0
EOF
[root@localhost cs]#bash repo.sh 
[root@l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维菜鸟XY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值