Linux之Shell编程

Shell是一个命令解释器,他为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序

脚本格式要求:1、脚本以#!/bin/bash开头  2、脚本需要有可执行权限

脚本常用的执行方式

方式1(输入脚本的绝对路径或相对路径)说明:首先要赋予helloworld.sh脚本+x权限,再执行脚本  ./hello.sh    /root/shcode/hello.sh

方式2(sh+脚本)说明:不用赋予脚本+x权限,直接执行即可  【sh hello.sh】

【vim hello.sh】

{#!/bin/bash

echo “hello,world”}

 

shell变量介绍:

1、Linux Shell中的变量分为,系统变量和用户自定义变量

2、系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME等等

3、显示当前shell中所有变量:【set】

自定义变量基本语法:

1、定义变量:变量名=值

2、撤销变量:【unset 变量】

3、声明静态变量:【readonly 变量】,注意:不能unset

定义变量的规则:

1、变量名称可以由字母、数字和下划线组成,但是不能以数字开头

2、等号两侧不能有空格

3、变量名称一般习惯为大写

将命令的返回值赋给变量

1、A=`date`反引号,运行里面的命令,并把结果返回给变量A

2、A=$(date)等价于反引号

 

设置环境变量

【export 变量名=变量值】将shell变量输出为环境变量/全局变量

【source 配置文件】让修改后的配置信息立即生效

【echo $变量名】查询环境变量的值

快速入门:1、在/etc/profile文件中定义TOMCAT_HOME环境变量;2、查看环境变量TOMCAT_HOM的值;3、在另一个shell程序中使用TOMCAT_HOM;注意:在输出TOMCAT_HOM环境变量之前,需要让其生效【source /etc/profile】

 

shell脚本多行注释【:<<!    !】

 

位置参数变量介绍:当我们执行一个shell脚本是,如果希望获取到命令行的参数信息,就可以使用到位置参数变量,比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息

基本语法:

$n(功能描述:n为数字,$0代表命令本身(./myshell.sh 100 200,其中$0代表./myshell.sh,$1代表100),$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10})

$*(功能描述:这个变量代表命令行中所有的参数(100和200),$*把所有的参数看成一个整体)

$@(功能描述:这个变量也代表命令行中所有参数,不过$@把每个参数区分对待)

$#(功能描述:这个变量代表命令行中所有参数的个数)

 

预定义变量介绍:就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用

基本语法:

$$(功能描述:当前进程的进程号(PID))

$!(功能描述:后台运行的最后一个进程的进程号)

$?(功能描述:最后一次执行的命令的返回状态。如何这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己决定),则证明上一个命令执行不正确了)

 

运算符基本语法:

1、"$((运算式))"或"$[运算式]"或者expr m + n

2、注意expr运算符间要有空格,如果希望将expr的结果赋给某个变量,需要使用``(反引号)括起来

3、expr m - n

4、expr \*,/,% 乘,除,取余

 

条件判断基本语法:

if 【 condition 】(注意condition前后要有空格)

then

  echo”equal“

fi

#非空返回ture,可使用$?验证(0为ture,>1为false)

常用的判断条件:

1、=,字符串比较

2、两个整数比较:-lt小于;-le小于等于;-eq等于;-gt大于;-ge大于等于;-ne不等于

3、按照文件权限进行判断:-r有读的权限;-w有写的权限;-x有执行的权限

4、按照文件类型进行判断:-f文件存在并且是一个常规的文件;-e文件存在;-d文件存在并是一个目录

 

case $变量 in

"值1")

如果变量的值等于值1,则执行程序1

;;

"值2")

如果变量的值等于值1,则执行程序1

*)

如果变量的值都不是以上的值,则执行此程序

;;

esac

 

for循环

基本语法1:

for 变量 in 值1 值2 值3...

do

程序

done

基本语法2:

for((初始值;循环控制条件;变量变化))

do

程序

done

 

while循环

while 【 条件判断式 】

do

程序

done

 

read读取控制台输入

【read 选项 参数】选项:-p指定读取值时的提示符;-t指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了;

 

函数介绍:有系统函数,也可以自定义函数

自定义函数基本语法:

function funname()

{

    Action;

    【return int;】

}

调用直接写函数名:funname【值】

posted @   WDYWSZGQD  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示