3-内容格式化

1 常用符号解读

1.1 信息传递

重定向

重定向符号

在shell脚本中有两类常见的重定向符号:
覆盖式重定向:
	> 表示将符号左侧的内容,以覆盖的方式输入到右侧文件中
	< 表示将符号右侧的内容,以覆盖的方式输入到左侧文件中
追加式重定向:
	>> 表示将符号左侧的内容,以追加的方式输入到右侧文件的末尾行中
	<< 表示将符号右侧的内容,以追加的方式输入到左侧文件的末尾行中

实践1 - 覆盖式重定向

查看文件内容
[root@localhost ~]# cat file.txt
nihao

使用重定向符号给文件中增加内容
[root@localhost ~]# echo "file1.txt" > file.txt

再次查看文件内容
[root@localhost ~]# cat file.txt
file1.txt

实践2 - 追加式重定向

查看文件内容
[root@localhost ~]# cat file.txt 
file1.txt

使用重定向符号给文件中增加内容
[root@localhost ~]# echo "file2.txt" >> file.txt 

再次查看文件内容
[root@localhost ~]# cat file.txt 
file1.txt
file2.txt

管道符

符号简介

| 这个就是管道符,常用于将两个命令隔开,然后命令间(从左向右)传递信息使用的。

使用格式

命令1 | 命令2
	管道符左侧命令1 执行后的结果,传递给管道符右侧的命令2使用

实践1 - 信息的传递

查看当前系统中的全局变量SHELL
[root@localhost ~]# env | grep SHELL
SHELL=/bin/bash

1.2 终端输出

后台执行

简介

& 就是将一个命令从前台转到后台执行,使用格式如下:
	命令 &

简单演示

前台执行休眠命令
[root@localhost ~]# sleep 4
界面卡住4秒后消失

后台执行休眠命令
[root@localhost ~]# sleep 10 &
[1] 4198
[root@localhost ~]# ps aux | grep sleep
root       4198  0.0  0.0   9032   808 pts/17   S    21:58   0:00 sleep 10
root       4200  0.0  0.0  15964   944 pts/17   S+   21:58   0:00 grep --color=auto sleep

信息符号

信息简介

1 表示正确输出的信息
2 表示错误输出的信息
2>&1 代表所有输出的信息,也可以简写为 "&>"

示例1 - 符号演示

标准正确输出重定向到zhengque文件
[root@localhost ~]# cat nihao.txt 1>> zhengque 

标准错误输出重定向到errfile文件
[root@localhost ~]# dsfadsfadsfa 2>> errfile

实例2 - 综合演练

脚本文件内容
[root@localhost ~]# cat ceshi.sh
#!/bin/bash
# 输出正确信息
echo '下一条错误命令'
# 执行错误命令,输出错误信息
dsfsafsafdsa

脚本执行效果
[root@localhost ~]# /bin/bash ceshi.sh
下一条错误命令
ceshi.sh:行5: dsfsafsafdsa: 未找到命令

1 和 2 综合演练
[root@localhost ~]# /bin/bash ceshi.sh 1>> ceshi-ok 2>> ceshi-err
[root@localhost ~]# cat ceshi-ok
下一条错误命令
[root@localhost ~]# cat ceshi-err
ceshi.sh:行5: dsfsafsafdsa: 未找到命令

全部信息演练
[root@localhost ~]# /bin/bash ceshi.sh >> ceshi-all 2>&1
[root@localhost ~]# cat ceshi-all
下一条错误命令
ceshi.sh:行5: dsfsafsafdsa: 未找到命令

2 输入格式化

2.1 EOF原理

场景需求

	在运维岗位中,有非常多的场景需要我们在脚本中编写应用软件的配置文件。
在这些应用软件的配置文件中,经常携带大量的格式,尤其是携带空格的层级格式,
如果我们一个一个的编写好标准的配置文件,但是一旦涉及到场景信息的动态化调整,
固定好的配置文件就不太适合了,所以我们需要一种方法能够实现整个动态的格式化需求。

解决方法

	在shell编程中,"EOF”通常与"<<”结合使用,"<<EOF”表示后续的输入作为子命令或子shell的输入,
直到遇到"EOF”,再次返回到主调用shell,可将其理解为分界符(delimiter)。
	所谓的 EOF,就是End Of File的缩写,它是一种自定义的文件内容终止符。

	既然是分界符,那么形式自然不是固定的,这里可以将”EOF"可以进行自定义,
但是前后的”EOF"必须成对出现且不能和shell命令冲突。其使用形式如下:

语法格式

交互式程序 << EOF
command1
command2
...
EOF
注意:
	最后的"EOF"必须单独占一行,而且必须顶格写,如果不想受到如此限制的话,使用<<-符号
		&l
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值