Shell编程之免交互

目录

一、Here Document免交互

1.1 免交互定义

1.2 语法格式

1.3 示例

示例1:直接把输入的从命令行输出

示例2:输入保存到文件

​编辑

示例3:追加输入到文件

 示例4:创建yum源

示例5:通过read命令接收输入并打印,输入值是两个EOF标记之间的部分,也就是520,这将作为变量a的值

 示例6:通过passwd给用户设置密码

1.4 变量设定(支持变量替换)

1.4.1 在写入文件时要先将变量值换成实际值,再结合cat命令完成写入

1.5 格式控制

1.5.1 关闭变量替换的功能

1.6 去掉每行之前的 TAB 字符

1.7 多行注释

二、Expect 免交互

1.1 概述

1.2 环境安装

1.3 基本命令

1.3.1 脚本解释器

1.3.2 spawn

1.3.3 expect

1.3.4 send

1.3.5 结束符

1.3.6 set

1.3.7 exp_continue

1.3.8 send_user

1.3.9 接收参数

1.4 用法示例

示例1:ssh免交互登录到远程服务器

示例2:在对方服务器上进行一下操作后再退出可执行以下脚本

示例3:引用位置变量

 示例4:创建用户并设置用户密码

总结


一、Here Document免交互

1.1 免交互定义

(1)使用I/O重定向的方式将命令列表提供给交互式程序

(2)标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地 生产出一个文件并用作命令的标准输入,Here Document 可以与非交互式程序和命令一起使用。

1.2 语法格式

命令 << 标记

....
输入内容
......
 
标记

注意事项

  1. 标记可以使用任意的合法字符(通用的字符是EOF

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

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

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

1.3 示例

示例1:直接把输入的从命令行输出

示例2:输入保存到文件

示例3:追加输入到文件

 示例4:创建yum源

示例5:通过read命令接收输入并打印,输入值是两个EOF标记之间的部分,也就是520,这将作为变量a的值

 示例6:通过passwd给用户设置密码

1.4 变量设定(支持变量替换)

1.4.1 在写入文件时要先将变量值换成实际值,再结合cat命令完成写入

案例1:变量替换

[root@localhost /home]#vim test.sh
#!/bin/bash
doc_file="gkd.txt"
i="nanjing"
cat > $doc_file <<EOF
welcome to $i
EOF

[root@localhost /home]#sh test.sh 
[root@localhost /home]#cat gkd.txt 
welcome to nanjing

案例2:整体赋值给变量,用echo将变量值打印出来

[root@localhost /home]#vim test2.sh
#!/bin/bash
test="you are very good!"
mylife=$(cat <<EOF 
冲冲冲!
干就完了!!!
$test
EOF
)
echo $mylife

[root@localhost /home]#sh test2.sh 
冲冲冲! 干就完了!!! you are very good!

1.5 格式控制

1.5.1 关闭变量替换的功能

关闭变量替换的功能,按照字符原本的样子输出,不做任何修改或替换

示例1:关闭变量替换

#对标记加单引号,即可关闭变量替换
[root@localhost /home]#aa=$(cat <<'EOF'
> 10
> $a
> EOF
> )
[root@localhost /home]#echo $aa
10 $a
[root@localhost /home]#echo $a
520
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值