简单 Shell 脚本随手录

版权声明:原创文章,转载请注明来源 http://blog.csdn.net/lxmy2012 https://blog.csdn.net/lxmy2012/article/details/76443724

主要是整apk gradle 打包上传蒲公英时用到了shell ,顺便记录下


一、基本

1. 声明解释器

shell 种类很多,需要声明解释器,一般第一行这样写 #!/bin/bash

#!/bin/bash
echo "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 $temp
echo ${temp}
# 输出:测试用的文本
这里可以加 { } ,也可以不加

{ } 用来确定边界, 一般习惯性要加,这样好阅读理解

3. 强大的 ${}

# 一个"#",表示从左起第一个指定字符 

## 两个"#",表示从左起最后一个指定字符 % 

一个"%",表示从右起第一个指定字符 %% 

两个"%",表示从右起最后一个指定字符 

* "*",表示要删除的字符,从左查则写左删左,从右查则写右删右,这里互换无效

#!/bin/bash

temp="应用名称v1.0.0_build10_release.apk"
echo ${temp}
# 输出:应用名称v1.0.0_build10_release.apk

echo ${temp#*_}
# 一个"#",表示从左起第一个“_”字符
# 输出:build10_release.apk

echo ${temp##*_}
# 两个"#",表示从左起最后一个“_”字符
# 输出:release.apk

echo ${temp%_*}
# 一个"%",表示从右起第一个“_”字符
# 输出:应用名称v1.0.0_build10

echo ${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 "空的"
fi

if [ -z "$temp" ]; then # 判断是否为空
    echo "空的"
else
    echo "有内容"
fi

#!/bin/bash

temp="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


猜你喜欢

转载自blog.csdn.net/lxmy2012/article/details/76443724