1.shell命令,一种人机交互的格式
例子,在linux下创建100个文件。touch a.c (创建一个文件)
脚本语言:
bash sh
脚本语言在嵌入式中,一般用于配置设置
配置过程中就是用脚本语言来配置,想配置uboot来设置开发板
所以学习的话是以bash为主
c语言的是编写出源代码,然后编译链接成二进制文件,而shell是可以直接运行
shell程序也是顺序结构,cpu只认识二进制代码,不认识源代码
脚本程序(shell)源代码编译链接过程是在运行过程中解释执行,才去慢慢执行
(linux系统本身自带shell解释器)
2.动手写一个shell
helloworld
执行shell编程必须具有可执行权限 chmod a+x 文件
(第一个shell文件)
#!/bin/sh //shell程序的执行器
echo "helloworld"
执行方式
第一种 ./xx.sh
第二种 source
source 脚本不具有可执行文件,也可以跑起来。
第三种 bash
bash xx.sh
/bin/sh实际上就是一个符号链接文件l 指向dash dash是ubuntu中默认使用的解释器文件
脚本中的注释使用的是# 如果有多行需要注释
shell程序其实是由很多个shell程序组成。 (shell是脚本型语言)
3.语法注意
=两边不能加空格
shell对语法非常严格 shell是弱类型语法
以上的代码中,第一行是定义,第二行是赋值
在shell中,引用一个变量,用的是$
echo $string 相当于string的解引用
shell中直接使用字符串也可以打印,有空格也行
没加单引号,加任何转义字符就会报错
反引号 反引号里面是加shell命令?
shell中的for循环
for xx in xx
do
done
4.while循环
注意,i++的写法中有两层括号
echo 创建和追加文件
追加了一个简单的c语言程序 >这个符号是创建文件的意思。>>就是追加内容的意思。
要区分一个箭头,和两个箭头的区别。
switch case 语句
shell中的case就是匹配上哪个就执行哪个
3.shell的传参
$#是传参个数
break是跳出传参个数的 shift有点像左移运算符,把我们传给shell程序的参数左移了一个出去。
原来的$2变成了$1.