Linux人工智能系列————Linux shell语法基础知识

        在 shell 中命令,不是单独存在的,可能需要多条命令结合使⽤ 将shell 命令按照⼀定的逻辑顺序组织在⼀个⽂件中,组合成⼀些列完整的功能命令要求,执⾏⽂件,就把其中的命令按照定义的逻辑依次执⾏--- 这个shell⽂件就叫做 shell 脚本(写 shell 脚本就是 shell 编程)
     shell ⽂件是以.sh作为后缀名
执⾏ shell 脚本 ( ⽂件 )
shell ⽂件添加执⾏权限,按照执⾏程序的⽅式执⾏
chmod u+x xxxx.sh
./xxxx.sh
使⽤对应的 shell 解析器来解析执⾏
bash xxxx.sh

shell语法

1. 变量定义
        变量=
2. 引⽤变量
        $变量
3. 变量的输⼊
        read 变量名 1 变量 2 变量 3 .....
        如果输⼊的数据超过变量的个数,则最后⼀个变量存储之后所有数据
4. 变量的输出
        echo $变量名 1 $ 变量名 2...
5. 引号的作⽤
        ""---表⽰字符串:会解析引号中的变量
        ''----表⽰字符串:不会解析引号中的变量
6. 位置变量
        $? :
        获取上⼀条命令的执⾏结果(执⾏的状态值),若上⼀条命令执⾏
        成功值$? = 0 ,如果不成功为⾮ 0
        $1:第⼀个参数
        $2:第⼆个参数
        $3:第三个参数
        ....
        $9:第九个参数
7. 条件判断
        条件判断:
        test
        字符串:
        s1 = s2-----判断相等
        s1 != s2-----判断不相等
        -z s1---------判断字符串⻓度是否为 0
        -n s1--------判断字符串⻓度不为 0

        整数:

                a -gt b------判断a 是否⼤于 b
                a -ge b------判断a 是否⼤于或等于 b
                a -lt b------判断a 是否⼩于 b
                a -le b------判断a 是否⼩于或等于 b
                a -eq b------判断a 是否等于 b
                a -ne b------判断a 是否不等于 b

        ⽂件测试:

                -d fi lename----判断⽂件是否是⼀个⽬录
                -e fi lename----判断⽂件是否存在
                -f filename----判断⽂件是否是普通⽂件
                -L fi lename----判断⽂件是否为符号链接⽂件
                -s fi lename----判断⽂件是否存在且⻓度不为0
                -r fi lename-----判断⽂件是否可读
                -w fi lename----判断⽂件是否可写
                -x fi lename-----判断⽂件是否可执⾏
                -c fi lename-----判断⽂件是否为字符设备⽂件

        逻辑运算:

                -a : and 逻辑与 多个条件都为真,结果为真
                -o :or 逻辑或 只要有⼀个条件为真,结果为真
                ! :not 逻辑⾮ 得到的结果与条件相反
9. 流程控制:

      (1) 选择结构:

 

 

        (2)循环结构          

                expr:算术指令
                expr $1 算术运算符 $2
while [ 条件表达式 ]----- 满⾜条件表达式就执⾏循环,不满⾜就跳出
do
命令表
done
for 变量名 in 单词表 ----- 如果变量能够从单词表中取出⼀个值进⾏
赋值,就循环执⾏⼀次
do
命令表
done
c 语⾔ for 循环格式
for(( 循环起始语句 ; 循环条件语句 ; 每次执⾏循环后的改变条件的语
))
do
命令表
done
10. 函数
        函数定义:
        函数名()
        {
        命令集合
        }
        function 函数名 ()
        {
        命令集合
        }
函数调⽤:执⾏函数功能
函数名
在函数中如果有参数,则只需要在函数调⽤时传递参数就⾏,在函数定义时
不⽤写
函数名 值 1 2 3 ....
在函数的定义中,函数会默认存在位置变量,会⾃动使⽤位置变量来获取到
传递的值
函数返回值:
在函数体中,使⽤ echo 输出要返回的内容
在调⽤时,如果没有⽤变量来进⾏存储赋值,则打印结果,但是如果使⽤变
量进⾏存储赋值(调⽤函数是使⽤ `
` 来获取函数的执⾏结果)则不会打印,
叫做返回值存储到变量
如: a=`add 1 2`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值