Shell脚本常用于自动化操作,很方便,现在记录一下。
读取参数的方法
argv=$# #读取输入参数的个数
Par_list="$@" #列出所有的输入参数
TOP_DIR=`pwd` #当前目录
echo "argv = $argv"
echo "Par_list= $Par_list"
echo "top dir = $TOP_DIR"
执行脚本,会输入如下,不错
./wfmk ni hao a
argv = 3
Par_list= ni hao a
top dir is /work/
判断语句
下面语句是判断file_path是否有执行权限,如果有,则执行!
if [ -x ${file_path} ]; then
bash ${file_path}
fi
-n 代表字符串非空,下面标志info不为空。
if [ -n "${info}" ];then
echo -e "before jack port is:"
cat_jack_port
fi
```
##系统常量
####uname
这个打印当前的系统是什么,例如linux
```
# uname
Linux
```
##替换语句
####Makefile patsubst
patsubst用于替换,例如下面的语句用于查找当前目录的apk文件
```
copy_from := $(patsubst ./%,%, \
$(shell cd $(LOCAL_PATH) ; \
find . -maxdepth 1 -name "*.apk" -and -not -name ".*") \
)
```
patsubst 就是把./去掉啦,例如copy_from在执行patsubst前是
./weixin.apk
执行patsubst后就是
weixin.apk
####Makefile foreach
包含循环列表,循环变量,和表达式。
例如下面,循环列表names ,循环变量n,表达式$(n).o
```
names := a b c d
files := $(foreach n,$(names),$(n).o)
```
最后输入就是a.o b.o c.o d.o