Linux之Shell编程
2021/4/21 7:25:13
本文主要是介绍Linux之Shell编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- Linux之Shell编程
- 一 shell的变量
- 二 运算符
- 三 条件判断
- 四 函数
Linux之Shell编程
一 shell的变量
-
变量的介绍
(1)系统变量:如 $HOME,$SHELL,$USER
(2)自定义变量:用户自定义的变量
(3)显示当前shell中所有变量:set -
shell变量的定义
(1)定义变量:变量=值
(2)撤销变量:unset 变量
(3)声明静态变量:readonly 变量
(4)定义变量的规则① 变量名称可以有字母、数字和下划线组成,但是不能以数字开头
② 等号两侧不能有空格
③ 变量名称一般为大写(5)将命令的返回值赋给变量
① 使用反引号:A=`ls-la`
② 使用括号:A=$(ls-la),等价于反引号(6)设置环境变量
① 将shell变量输出为环境变量
export 变量名=变量值
② 让修改后的配置信息立即生效
source 配置文件
③ 查询环境变量的值
echo $变量名(7)位置参数变量
使用位置参数变量可以获取命令行的参数信息① $n:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,${10}
② $*:代表命令行中所有的参数,把所有的参数看成一个整体
③ $@:代表命令行中所有的参数,把每个参数区别对待
④ $#:代表命令行中所有参数的个数(8)预定义变量
① $$:当前进程的进程号PID
②$!:后台运行的最后一个进程的进程号PID
③ $?: 最后一次执行的命令的返回状态,命令正确执行返回0,否则返回非0
二 运算符
- 基本语法
(1)“$((运算式))”或“$[运算式]”
(2)expr m + n,注意运算符间要有空格
(3)expr m - n
(4)expr * ,/, %乘除取余
三 条件判断
-
判断语句
(1)基本语法[ condition ]:注意condition前后要有空格,非空返回true,可用$?进行验证
(2)常用判断条件
-lt:小于
-le:小于等于
-eq:等于
-gt:大于
-ge:大于等于
-ne :不等于
-r:有读的权限
-w:有写的权限
-x:有执行的权限
-f:文件存在并是一个常规的文件
-e:文件存在
-d:文件存在并是一个目录 -
流程控制
(1)if判断
if [ 条件判断式 ];then 程序 fi #或者(推荐使用) if [ 条件判断式 ] then 程序 elif [ 条件判断式 ] then 程序 fi #注意中括号之间有空格
(2)case语句
case $变量名 in "值1") 如果变量的值等于值1,则执行程序1 ;; "值2") 如果变量的值等于值2,则执行程序2 ;; …省略其他分支… *) 如果变量的值都不是以上的值,则执行此程序 ;; esac
(3)for循环
#语法一: for 变量 in 值1 值2 值3… do 程序 done #语法二: for (( 初始值;循环控制条件;变量变化 )) do 程序 done
(4)while循环
while [ 条件判断式 ] do 程序 done
四 函数
-
read读取控制台输入
read(选项)(参数)
-p:指定读取值时的提示符
-t:指定读取值等待的时间
参数为指定读取值的变量名 -
系统函数
(1)basename基本语法
返回完整路径最后/的部分,常用于获取我文件名basename [pathname] [suffix]
basename [string] [suffix]
suffix为后缀,如果其被指定,basename会把pathname或string中的suffix去掉,获取文件名(2)dirname基本语法
返回完整路径最后/的前面部分,常用于返回路径部分dirname 文件绝对路径
从给定的包含绝对路径的文件名中去除文件名,然后返回剩下的路径 -
自定义函数
(1)基本语法
[ function ] funname[()] { Action; [return int;] } #调用函数: funname [值]
这篇关于Linux之Shell编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南