Shell脚本①编程规范与脚本基础

发布时间:2024年01月23日

目录

一.Shell脚本概述

1.基本概念

(1)将要执行的命令按顺序保存到一个文本文件;

(2)给该文件可执行权限;

(3)可结合各种Shell控制语句以完成更复杂的操作。

2.基本构成

(1)解释器:是用什么语言写的

(2)注释:解释语句含义

(3)执行语句

3.脚本运行

(1)使用路径执行(需要加执行权限)

(2)直接使用解释器(不需要执行权限)

(3)source和.执行(不需要执行权限)

4.Shell脚本种类

二.Shell脚本执行

1.执行逻辑

2.执行方法

(1)方法一:指定路径命令,文件需由可执行(x)权限

(2)方法二:指定shell来解释脚本,不必须有可执行(x)权限

(3)方法三:source与.脚本路径执行shell脚本

(4)方法四:将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名执行

(5)方法五:自己创建一个路径(将脚本文件所在的绝对路径添加至PATH中)

3.脚本错误调试

(1)语法错误,会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定是准确的

(2)命令错误,默认后续的命令还会继续执行,用bash -n 无法检查出来 ,可以使用 bash -x 进行观察

(3)逻辑错误:只能使用 bash -x 进行

三.重定向与管道符

1.交互式硬件设备标准输入输出

(1)标准输入:从该设备接收用户输入的数据

(2)标准输出:通过该设备向用户输出数据

(3)标准错误:通过该设备报告执行出错信息

2.重定向具体操作

3.管道符

五.echo命令


一.Shell脚本概述

1.基本概念

(1)将要执行的命令按顺序保存到一个文本文件;
(2)给该文件可执行权限;
(3)可结合各种Shell控制语句以完成更复杂的操作。

2.基本构成

(1)解释器:是用什么语言写的
(2)注释:解释语句含义
(3)执行语句

3.脚本运行

(1)使用路径执行(需要加执行权限)
(2)直接使用解释器(不需要执行权限)
(3)source和.执行(不需要执行权限)

注意:使用前两种方式执行会去开启子bash环境执行,使用source和.会影响当前环境

4.Shell脚本种类

查看shells文件位置:/etc/shells

二.Shell脚本执行

1.执行逻辑

(1)顺序执行:程序按从上到下顺序执行

(2)选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行

(3)循环执行:程序执行过程中需要重复执行多次某段语句

2.执行方法

(1)方法一:指定路径命令,文件需由可执行(x)权限
#方法一:指定路径的命令,要求文件必须有x权限
[root@localhost ~]#chmod +x /root/first.sh 
[root@localhost ~]#cd /root/
[root@localhost ~]#./first.sh 
当前目录位于:
/root

(2)方法二:指定shell来解释脚本,不必须有可执行(x)权限
#方法二:指定Shell来解释脚本,不要求文件必须有x权限。
[root@localhost ~]#bash first.sh 
当前目录位于:
/root

(3)方法三:source与.脚本路径执行shell脚本
#方法三:source 与 . 脚本路径执行shell脚本
[root@localhost ~]#source first.sh 
当前目录位于:
/root

(4)方法四:将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名执行
#方法四:将脚本文件放入$PATH中目录的其中一个目录,直接输入脚本名
echo $PATH
/usr/local/sbin:/usr/local/bin :/usr/sbin :/usr/bin: / rpot/bin

(5)方法五:自己创建一个路径(将脚本文件所在的绝对路径添加至PATH中)
[root@localhost ~]#vim /etc/profile
 
export PATH=$PATH:/root/shell  
#export使环境变量的值全局环境下生效,不加export默认在当前环境变量下生效
 
[root@localhost ~]#source /etc/profile   #刷新配置文件
[root@localhost ~]# echo $PATH           #查看当前路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/shell
[root@localhost ~]# chmod +x 1.sh        #给脚本加上执行权限
[root@localhost ~]#1.sh                  #输入脚本名 直接执行
hello 

3.脚本错误调试

(1)语法错误,会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定是准确的
(2)命令错误,默认后续的命令还会继续执行,用bash -n 无法检查出来 ,可以使用 bash -x 进行观察
(3)逻辑错误:只能使用 bash -x 进行

三.重定向与管道符

1.交互式硬件设备标准输入输出

(1)标准输入:从该设备接收用户输入的数据
(2)标准输出:通过该设备向用户输出数据
(3)标准错误:通过该设备报告执行出错信息
类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

2.重定向具体操作

类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出>将输出结果保存到指定的文件(覆盖原有内容)
重定向输出>>将输出结果换行添加在文件尾部
重定向错误输出2>将错误信息保存到指定的文件(覆盖原有内容)
重定向错误输出2>>将错误信息追加到指定的文件中
混合输出&>将标准输出、标准错误的内容保存到同一个文件中

重定向输出修改密码

3.管道符

管道符号 “|”

将左侧的命令输出结果,作为右侧命令的处理对象

免密修改密码

五.echo命令

打印输出内容

选项作用
-n不追加换行
-e\b?? ?退格
\c?? ?抑制更多的输出
\n?? ?换行

\t?? ?横向制表符

\v?? ?纵向制表符
文章来源:https://blog.csdn.net/Kiryu7/article/details/135770904
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。