美文网首页
Shell 编程系列文章(一)

Shell 编程系列文章(一)

作者: _海角_ | 来源:发表于2018-11-21 11:12 被阅读7次

日前写了一个自动打包上传的脚本,首次使用shell编程,过程遇到诸多问题,现做此记录。

1.判断前一条命令是否执行成功

if [ $? -ne 0 ]; then
    echo "fail"
else
    echo "success"
fi

或者

if [ $? -eq 0 ]; then
    echo "success"
else
    echo "fail"
fi

shell中:

参数处理 说明
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
ge 大于等于
le 小于等于

2. 函数参数

在Shell中,在声明函数的时候不用形参,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...
注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

$?解释了上文第一条,判断命令是否执行成功

#!/bin/bash
funWithParam(){
    echo "The value of the first parameter is $1 !"
    echo "The value of the second parameter is $2 !"
    echo "The value of the tenth parameter is $10 !"
    echo "The value of the tenth parameter is ${10} !"
    echo "The value of the eleventh parameter is ${11} !"
    echo "The amount of the parameters is $# !"
    echo "The string of the parameters is $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

输出结果:


image.png

3.打开浏览器

一句话用Safari打开网页

open -a "/Applications/Safari.app" http://www.baidu.com 

4. 上传、下载进度效果

image.png

只需将curl 用$()包裹起来

$(curl -F "file=@$1" \
    -F "uKey=$2" \
    -F "_api_key=$3" \
    https://www.pgyer.com/apiv2/app/upload)

相关文章

网友评论

      本文标题:Shell 编程系列文章(一)

      本文链接:https://www.haomeiwen.com/subject/nvvxqqtx.html