Shell脚本免交互操作

本文详细介绍了Shell脚本中Here Document的使用,包括概念、格式及常见应用,如行数统计、读取输入、设置密码等。同时,探讨了 Expect 工具,用于解决脚本中的交互问题,讲解了其基本命令和执行方式,如spawn、expect、send,以及如何免交互修改用户密码和实现SSH登录。
摘要由CSDN通过智能技术生成

目录

一、Here Document免交互

1、概念

2、格式

二、Here Document常规用法

1、免交互方式实现对行数的统计

2、通过read命令接收输入并打印

3、通过passwd给用户设置密码

4、重定向导入文件

5、利用tee直接输入

6、支持变量替换

7、 整体赋值给变量

 8、关闭变量替换

 9、去除每行前的TAB字符

 三、Expect

 1、Expect概述

2、expect基本命令

1)脚本解释器

2)spawn

3)expect

4)send

5)结束符

6)set

7)exp_continue

8) send_ user

9)接收参数

10)expect直接执行,需要使用expect命令去执行脚本

四、Expect执行方式

1、免交互修改用户密码

2、实现ssh登录

 3、嵌入执行模式

4、免交互实现创建磁盘


一、Here Document免交互

1、概念

使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如ftp、cat、或read命令

标准输入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地地生产出一个”文件“并用作”命令“地标准输入

Here Document也可以与非交互式程序和命令一起使用

2、格式

命令 <<标记
...
内容     #标记之间是传入内容
...
标记

注意事项:

标记可以使用任意合法字符 (通常使用EOF)

结尾的标记一定要顶格写,前面不能有任何字符

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

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

二、Here Document常规用法

1、免交互方式实现对行数的统计

将要统计的内容置于标记“EOF”之间,直接将内容传给wc -l 来统计

结尾标记要顶格写,前后不能有任何字符,开头的空格会被省略,算作普通字符

 

 2、通过read命令接收输入并打印

 3、通过passwd给用户设置密码

 4、重定向导入文件

5、利用tee直接输入

tee命令可既在屏幕上看到输出内容,又可以把这些内容同时输出到标准输出和(多个)文件中

 6、支持变量替换

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

7、 整体赋值给变量

 整体赋值给变量,然后通过echo命令将变量值输出

 

 调用变量加上双引号后输出结果可换行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值