本地Shell脚本解析

关于Shell脚本的解析:

#!/bin/bash 用来标记当前脚本需要什么解释器来执行,即使用哪一种Shell,当前使用的为bash;

echo 命令用于向窗口输出文本;

CURRENT_PATH=$(cd `dirname $0`; pwd) 定义了当前的路径即为该脚本所在的目录;

之后是条件语句 if 判断,以fi结束;

其中判断的对象 $1表示第一个参数(同理$2表示第二个参数),详细的其他特殊符号可以参考shell教程;

而-z 则用来判断该参数是否为空,若为空即为真,-o则为或的意思。此处的条件语句就是判断输入参数如果为空或者为 release 则条件成立(从-a到-z都有含义,后面可以细看);

exit 1 表示错误返回,反之exit 0为正确返回;

export 用来导出变量,这里 WORKSPACE=$(cd "${CURRENT_PATH}/../.."; pwd)表示赋值为CURRENT_PATH的上级的上级目录;

sed –n “xxx /p” “file” ,这里-n用来取消默认的输出,/p表示打印行,这里是打印指定文件中的指定参数来进行赋值(其中涉及到正则表达式,后面详细看);

之后是进行了输出位置的和版本号的设置;

 

sed –i 改命令会直接修改源文件,有

sed -i 's/原字符串/新字符串/' /home/1.txt 和

sed -i 's/原字符串/新字符串/g' /home/1.txt 两种,前者会改变第一个原字符串,后者会改变每一个原字符串,此处用来修改CurrentBundleVersion和ProjectSettings中的设定和版本号;

if [ "$?" -ne "0" ] 用来表示如果上一行命令执行后的结束代码不为0,则执行下面的命令,这里面 $? 为上一条语句的返回值,-ne为不等于;

 

上面一条语句则进入Unity所在位置,使用期命令行参数进行设置,其中的-quit -batchmode –logfile “xxxx”表示其他命令执行完毕后退出unity、在批处理模式下运行unity、并制定要被写入编辑的log文件, 而 –projectPath 为打开制定路径的项目,本例中打开了当前游戏工程目录,-executeMethod为执行静态方法,其他命令详细可见网址 : http://www.cnblogs.com/alongu3d/p/3647485.html?utm_source=tuicool&utm_medium=referral

最后通过./postreset_xxx.sh 语句调用了另一个shell脚本.

posted @ 2017-07-14 15:53  cpjeff  阅读(491)  评论(0编辑  收藏  举报