shell是一个脚本,也是一个程序,我们在终端敲命令时也是一种程序,就是shell,它都是一些二进制文件,它通过shell解析器调用系统IO从而调用到内核。shell解析器有很多种,我们ubuntu下默认是bash解析器,如何查看是哪一个解析器:通过 ehco $SHELL查看
如何进行shell编程
-
shell解析器执行程序,其实就是执行一个脚本文件,这个文件就是我们需要写的东西
执行方式有三种:
./ 脚本文件
bash 脚本文件
. 脚本名字
Linux下是不分后缀名的,我们写有后缀名只是方便分类文件而已, -
shell脚本文件一定要加增加执行文件
chomd 777 [文件名] 更改文件权限,可读可写可执行,绿色的文件即为可执行文件
3.#![shell编译器路径] #的意思是注释
#!/bin/bash 推荐使用bin目录下的bash解析器
4.脚本文件有两类
-
系统自己去执行
在 ~./bashrc(凡是带有.的文件都是隐藏文件),这个脚本文件,每一次开启一个新的终端都会执行一次,在我们的/etc目录下有一个profile文件每一次开机登录的时候都会执行一次 -
如果我们在windows下写脚本文件,要记得转成utf-8的格式,如果不转的话要在linux下面转
-
环境变量:系统配置环境变量,通常指的是路径,通常是配置在 bashrc 和profile文件里面
-
自己强制去执行 ,就是我们自己去写的shell脚本,需要我们用命令去运行它
shell语法
1.段落注释
语法::<<! 【你写的内容】 !
2.变量的表示
运行结果:
noset为取消这个变量
- read 从终端读取数值*
- 查看当前系统的变量 使用 env
- which xx //个人认为which 是查找一些命令的路径,如ls ,mv等等,这些都在bin目录下,所以只能找到bin目录下的东西
- 使用export 【你的内容】即可生成临时的环境变量,系统重启后将会失效,用source 【脚本的路径】进行脚本更新
- 系统预先定义好的变量:
比如$? $* $$ $0 $1
要注意格式:比如nu=100是不能有空格的 [ nu = 2 ]每次写一个都要空格一下
运行结果:
- (){}的作用
其他的用法:
运行结果:
- 判断条件
两种写法 1.test [内容] [内容] 2 [ xx xx ]
运行结果
数字判断
9:综合逻辑测试
10.if条件语句
11 case语句
12.for循环
#!/bin/bash
declare -i sum #声明整数
sum=0
for((i=0;$i<10;i=$i+1) #左值不要加$,右值要加
do
sum=$sum+$i;
done
echo $sum
- while控制语句
while [ condition ] do 程序段 done 当condition成立的时候进入while循环,直到condition不成
立时才退出循环。
12_while.sh
#!/bin/bash
declare -i i
declare -i s
while [ "$i" != "101" ]
do s+=i; i=i+1;
done
echo "The count is $s"
14.函数的使用,以及分文件编程