sh脚本命令

cremeb多商户打包代码的时候,总是重复的工作,就想着写了个脚本,记录一下sh脚本用到的一下方法:
点击了解 CRMEB多商户 其他开源项目源码下 :了解更多
小姐姐二维码
sh脚本命令_第1张图片

  1. #!/bin/bash 文件第一行,提示电脑后面的代码需要用 /bin/bash 来解读
  2. echo 输出内容,
  3. if流程控制
if [  ] ;#条件
then  #执行
else #否
fi #结束标签
 -a #and 与 操作  if [ $a -a $b ]
 -o #or 或 操作 if [ $a -o $b ]
  1. 文件比较 if [ -d "/usr/" ] 文件夹是否存在
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新  [ "/usr/test1.txt" -nt "/usr/test2.txt" ]
-ot 判断file1是否比file2旧  [ "/usr/test1.txt" -ot "/usr/test2.txt" ]
  1. getopts sh脚本传参数方法,如:test.sh -a 1
    创建脚本 test.sh
#!/bin/bash
while getopts "a:w:p:n" arg; #这里设定了参数必须是-a;-w;-p;-n这几个参数名,后面的冒号表示必须传入参数
do
	case $arg in
		a ) #所有版本号统一
			parms1="$OPTARG"
		;; 
		w ) #前端版本号
			parms2="$OPTARG"
		;;
		p ) #php版本号
			parms3="$OPTARG"
		;;
		n ) #最新版本号
			parms4=1
		;;
		? )
		echo "未知参数: -a; -w ; -p ; -n "
		exit
	esac
done

例如执行 sh ./test.sh -a 1 可以选择参数名-a 就必须传入参数 1,-n则可以不用参数
6. param=$(cat ./test.txt) 变量赋值,参数名\等号\值,三个之间不能有空格,如果需要得到某够命令获取的信息作为值,都可以用这种方式,变量=$(命令)

暂时就用到这些

你可能感兴趣的:(默默前行,shell,linux)