shell文件
shell的作用
是一个运行linux命令的文件,当你运行该文件的时候,他会依据按这个shell文件的内容为终端传输指令,但是他又像个c语言文件,能引用,能赋值,但没有分号 。这个文件的后缀是.sh。
不过运行shell文件时,要给该文件赋予可运行的权限,指令如下
chmod + x 文件名字.sh
这样shell文件才可以运行
主体
开头必须是下面这个,表示他是shell文件
#!/bin/bash
shell变量
shell的变量没有类型,数字,字符都可以,如
a=“hello”
(注意=号的两边不能有空格)
引用变量像makefile文件一样要$变量名,
才能引用。
此外注意单双引号的区别
unset 变量名
这个函数是删除变量
export 变量名 这个函数把变量名这个变量变为全局变量
这些是一些特殊变量,可以直接用,还有一些系统预定好的变量,这里不说了。
内容
shell内容由linux命令组成,也能进行计算
在进行运算了之后要记得加上$进行取值哦!!
test命令
能用来判断表达式
判断字符
判断字符串
判断整数
判断文件
具体可以上网搜索,这些都是关键字
数组,shell与c语言一样都有数组
echo是linux的打印到终端的命令,卡比不懂的可以问ai
shell也有if的用法,但是呢,他与我们熟知的c语言if的格式不一样
格式:
if 【表达式和条件都可以】
then
要执行的命令
elif 【表达式和条件都可以】
then
要执行的命令
else
要执行的命令
…
fi
fi是结束的标志
shell也有case的用法,但是呢,他与我们熟知的c语言case的格式不一样,格式如下:
case $1 in
“1”)
要执行的命令
;;
“2”)
要执行的命令
;;
“3”)
要执行的命令
;;
*)
要执行的命令
;;
esac
这个case运行时,会将$1 与下面这些1,2,3这些内容比对,包括字符,如果一样就会进入其中执行linux命令,这里的*)表示,如果没有匹配对的情况,就会进入,执行里面的命令。结尾的esac表示case函数的结束。
shell的for循环也有点不同,有两种格式,第一种格式是这样的:
for 变量名 in 值的列表
do
要执行的指令
done
例如
这里会循环,值列表的值包括字符会赋给color,每赋一次就会执行一次下面的命令。
do是开始,done是结束。
第二种格式,类似c语言的for,但有点不同:
for((i=1;i<10;i++))
do
要执行的指令
done
就是c语言的for循环,但是多了个左右的括号,do,done
shell有while语句循环,不过c语言是while(表达语句 ),这里是while【表达语句】
括号变了中括号,使用是一样的,也多了do,和done
while【表达语句】
do
要执行的语句
done
until与这个while的变化一样
shell也有自定义函数,和c语言是一样的
函数名()
{
要执行的指令
}