一,变量的定义到使用(编译原理和语法详解)
说白了,shell就是一串命令的集合,可以帮助我们完成很多事情。广泛存在于Linux,可执行文件,还包括Android。当需要把别人写好的功能集成到Android中时就需要用到shell编程。
学习shell编程必须要一个Linux环境哟。在Linux中的可执行文件是 .sh 文件,这个文件类比 .java
以下知识全部是运行在Linux环境下
echo $BASH 貌似是定位当前文件夹位置
/bin/bash
ls 列出当前目录下的所有文件
vim demo.sh 实际写一个叫demo的shell文件 以.sh结尾,但这并不是一个可执行文件,必须在文件的第一行添上如下一行
!bin/bash shell脚本的第一行一定是这句话
File by 除了第一行的#其他都是注释
echo "wangyi" 输出一个变量 wangyi 然后退出当前编辑器
./demo.sh 通过./的方式运行demo文件
-bash: ./demo.sh: Permission denied 提示没有权限
chmod 777 demo.sh 给他一个最高权限
./demo.sh 再次运行
wangyi 就会得到结果wangyi
/bin/bash demo.sh 另外一种运行方式,不需要权限
wangyi 得到结果
1,变量的定义
vim demo.sh 进入demo文件中 内容如下:
!bin/bash
File by
echo "wangyi"
A=10 shell是弱类型语言,给变量赋值就是定义了变量
echo $A 使用上面定义的变量A 打印出来
退出编辑,再次运行,得到如下结果:
./demo.sh
wangyi
10
vim demo.sh 再次进入demo文件中 内容如下:
!bin/bash
File by
echo "wangyi"
A=10
echo PWD 打印系统自带的环境变量PWD,代表当前路径
退出再次运行demo文件如下:
./demo.sh
wangyi
10
/root 得到当前路径在root环境下
直接在命令行下输入:
pwd
/root 也会得到当前路径
变量分为局部变量和系统环境变量
系统环境变量如下:
实验参数实例
参数的具体效果 第二次只能打印一个参数
这样就能打印出第二个参数
看看效果
打印其他参数
效果如下:
问号的作用:判断上一次命令是否执行成功,返回0代表成功
补充一点:申明变量的左右两边不能有空格,有空格则是错误的
2,语法详解(for循环)
语法规则如下:
简单的打印数字,遍历1到15
再去写一个脚本
遍历数字,用的反引号,数字1左边那个键
执行查看效果:
接下来求1到15之间所有数字之和:命令expr
再求1到100的累加:
结果如下:
如果忘记加号前后的空格
就是这个效果了:得到一个字符串了
将当前的文件全部打包成一个压缩目录:当前有这些文件
tar czf 代表压缩
效果: