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`
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)