简单 Shell 脚本随手录
来源:互联网 发布:linux中连接本地 编辑:程序博客网 时间:2024/05/20 03:41
主要是整apk gradle 打包上传蒲公英时用到了shell ,顺便记录下
一、基本
1. 声明解释器
shell 种类很多,需要声明解释器,一般第一行这样写 #!/bin/bash
#!/bin/bashecho "Hello World"#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell
2.注释
使用 # 开头即为注释
# 这是一个注释
3. 运行shell脚本
3.1 作为可执行程序运行,比如运行 test.sh
chmod +x ./test.sh #使脚本具有执行权限./test.sh #执行脚本,注意以 . 开始
3.2 作为解释器参数运行
/bin/sh test.sh
二、shell 语法杂烩
1. 变量定义
temp="测试用的文本"temp="test string"# "="符号左右不能有空格
2. 使用变量
使用$符合取值
temp="测试用的文本"echo $tempecho ${temp}# 输出:测试用的文本这里可以加 { } ,也可以不加
{ } 用来确定边界, 一般习惯性要加,这样好阅读理解
3. 强大的 ${}
# 一个"#",表示从左起第一个指定字符
## 两个"#",表示从左起最后一个指定字符 %
一个"%",表示从右起第一个指定字符 %%
两个"%",表示从右起最后一个指定字符
* "*",表示要删除的字符,从左查则写左删左,从右查则写右删右,这里互换无效
#!/bin/bashtemp="应用名称v1.0.0_build10_release.apk"echo ${temp}# 输出:应用名称v1.0.0_build10_release.apkecho ${temp#*_}# 一个"#",表示从左起第一个“_”字符# 输出:build10_release.apkecho ${temp##*_}# 两个"#",表示从左起最后一个“_”字符# 输出:release.apkecho ${temp%_*}# 一个"%",表示从右起第一个“_”字符# 输出:应用名称v1.0.0_build10echo ${temp%%_*}# 两个"%",表示从右起最后一个“_”字符# 输出:应用名称v1.0.0# 联合运用,取出build大小temp=${temp##*build}temp=${temp%_*}echo ${temp}# 输出:10
4. basename 获取文件名
temp="/Desktop/test.sh"echo $(basename ${temp})# 输出:test.sh
5. dirname 获取目录
temp="/lxmy/Desktop/test.sh"echo $(dirname ${temp})# 输出:/lxmy/Desktop
6. 运算符
6.1 字符串运算符
= 检查字符串是否相同,相同返回true
!= 检查字符串是否相同,不同返回true
-z 检查字符串长度是否为0,为0返回true
-n 检查字符串长度是否不为0,不为0返回true
7. if、if else
注意:shell 脚本中, 流程控制不能为空,简单点说,写了if,里面就得写东西,else 也一样,不能为空
if 开头,fi 结尾,注意 if 中括号里要加空格隔开
temp="abcd"if [ -z "$temp" ]; then # 判断是否为空 echo "空的"fiif [ -z "$temp" ]; then # 判断是否为空 echo "空的"else echo "有内容"fi
#!/bin/bashtemp="abcd"if [ $temp ]then # 判断是否为空 echo "有内容"else echo "空的"fi
参看
http://www.runoob.com/linux/linux-shell.html
http://blog.csdn.net/ljianhui/article/details/43128465
END
阅读全文
0 0
- 简单 Shell 脚本随手录
- Shell脚本学习之《随手记》
- windows mobile 随手录
- wince6.0 随手录
- 随手一点小记录
- 简单的shell脚本
- shell脚本简单调试
- shell下简单脚本
- shell脚本简单示例
- shell 脚本简单语法
- 简单shell脚本1
- shell 脚本简单总结
- 简单Shell脚本学习
- shell脚本简单实例
- 简单shell脚本实例
- shell脚本简单语法
- Shell脚本简单练习
- 简单的shell脚本
- C++学习笔记(二):内联函数inline
- 人工智能之机器学习算法体系汇总
- 换钱的方法数
- 如何找出数列中符合条件的数对的个数
- 268. Missing Number
- 简单 Shell 脚本随手录
- easyui设置datebox默认当前日期,且只能选择当前日期之前的日期
- mongoose中connect()、createConnection()和connection的区别和作用
- javascript学习笔记:BOM对象(存疑)
- ARM-Linux移植之(一)——内核启动流程分析
- 一些精致的web UI框架及常用前端UI框架
- 数字变成大写金额
- The Festive Evening(思维题)
- C++ auto