shell编程之免交互(一)

简介: 1、Here Document免交互2、Expect免交互3、免交互磁盘创建

1、Here Document免交互


概述:

  • Here Document使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如 ftp、cat 或 read 命令。
  • 是标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个"文件"并用作"命令"的标准输入。
  • Here Document 也可 以与非交互式程序和命令一起使用。


格式:


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


注意事项:

  • 标记可以使用任意合法字符(通常为EOF)
  • 结尾的标记一定要顶格写,前面不能有任何字符结尾的
  • 标记后面也不能有任何字符(包括空格)
  • 开头标记前后的空格会被省略掉

 

补充:a)免交互方式实现对行数的统计,将要统计的内容置于标记"EOF"之间,直接将内容传给 wc -1 来统计


wc -l <<EOF
    > 123
    > 345
    > 567
    > EOF
    3


z1.png

b)通过read命令接收输入并打印,输入值是两个EOF 标记之间的部分,作为变量i的值


read i <<EOF
>Hi
>EOF
echo $i


z2.png


c)通过passwd给用户设置密码


passwd lisi <<EOF
>abc1234
>abc1234
                   #这两行是输入的密码和确认密码
>EOF


z3.png



支持变量替换:

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


#!/bin/bash
file="EOF1.txt"
i="school"
cat > $file <<EOF
I am going to $i
EOF
cat EOF1.txt

w9.png


w10.png


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


#! /bin/bash
var="Great! I am going to school!"
myvar=$(cat <<EOF
This is Line 1.
Today is Monday.
$var
EOF
echo "$myvar"

z4.png

z5.png


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


#!/bin/bash
var="Great! I am going to school!"
myvar=$(cat <<'EOF'    #对标记加单引号,即可关闭变量替换
This is Line 1.
Today is Monday .
$var
EOF
echo $myvar

z6.png


z7.png


去掉每行之前的TAB字符

#!/bin/bash
var="Great! I am going to school!"
myvar-s (cat <<-'EOF'   #在标记前加“-”,即可抑制各行首TAB
           This is Line 1.
      Today is Monday.
   $var
EOF
)
echo $myvar

z9.pngz10.png


多行注释:

  • Bash的默认注释是“#”,该注释方法只支持单行注释: Here Document 的引入解决了多行注释的问题
  • “:"代表什么都不做的空命令。中间标记区域的内容不会被执行,会被bash忽略掉,因此可达到批量注释的效果


#!/bin/bash
var="Great! I am going to school!"
: <<-EOF   #多行注释,“:”开头的Here Document标记内容不会被执行
      This is Line 1.
   Today is Monday.
  $var
EOF
echo "abcd"

z11.pngz12.png

相关文章
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
28天前
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
92 7
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
Shell编程(下)
Shell编程(下)
110 1
|
2月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
47 1
|
2月前
|
Shell Linux 开发工具
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
82 12
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
53 12