目录
一.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/profileexport 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/stdin | 0 | 键盘 |
标准输出 | /dev/stdout | 1 | 显示器 |
标准错误输出 | /dev/stderr | 2 | 显示器 |
2.重定向具体操作
类型 | 操作符 | 用途 |
---|---|---|
重定向输入 | < | 从指定的文件读取数据,而不是从键盘输入 |
重定向输出 | > | 将输出结果保存到指定的文件(覆盖原有内容) |
重定向输出 | >> | 将输出结果换行添加在文件尾部 |
重定向错误输出 | 2> | 将错误信息保存到指定的文件(覆盖原有内容) |
重定向错误输出 | 2>> | 将错误信息追加到指定的文件中 |
混合输出 | &> | 将标准输出、标准错误的内容保存到同一个文件中 |
重定向输出修改密码
3.管道符
管道符号 “|”
将左侧的命令输出结果,作为右侧命令的处理对象
免密修改密码
五.echo命令
打印输出内容
选项 | 作用 |
-n | 不追加换行 |
-e | \b 退格 |
\c 抑制更多的输出 | |
\n 换行 | |
\t 横向制表符 | |
\v 纵向制表符 |