shell使用小结

由于习惯了linux下的shell编写,所以完全放弃了bat,win下也拥抱cygwin了。这里记录下自己认为值得注意的地方。

参考资料

linux shell 逻辑运算符、逻辑表达式详解

基本知识

最容易混淆的部分

名称说明
${varname}获取变量varname的值,替换形式为$varname
$((...)),$[...],expr ...算数运算并返回结果,命令expr具有同样的效果
[...],((...)),test ...判断…代表的表达式是否正确,注意与上面命令的差别
`…`,$(...)执行…表示的命令,也称命令替换,返回…其代码执行后的标准输出的结果,常见用echo输出

shell变量类型

类型说明
局部变量在脚本命令中定义,仅在当前shell中有效
环境变量所有程序都可以访问,执行env可以查看
shell变量由shell程序设置的特殊变量,用于保证shell的正常运行,一部分为环境变量,一部分为局部变量

常用shell变量

变量名说明
$0当前脚本的文件名,类似vim环境中的%变量(%:r可以取除suffix以外的部分)
$nn为整形,表示传递给脚本或函数的第n个参数
$#传递给脚本或函数的位置参数个数
$*传递给脚本或函数的所有位置参数(作为单个字符串)
$@传递给脚本或函数的所有位置参数(每个都作为独立的字符串)
$?上一个命令的退出状态,或函数的返回值.特别注意:最大255,超过则为0,最好不要用于获取函数返回值
$$当前shell的进程id(PID)

变量的操作

名称说明
env查看环境变量
set查看环境变量和局部变量
readonly将一个变量设置为只读,后续无法再对其进行修改和删除
unset删除一个变量
export将一个变量设定为环境变量

函数的定义及使用

模块化(调用其它shell文件)

#方式1
source ./test_lib.sh

#方式2
. ./test_lib.sh #注意第一个.,其作用于source相同


#然后就可以调用test_lib.sh中的函数了

定义函数

特别注意:
1、函数的return 是否返回值属于可选,且值的范围受到限制:只能整形,最大255(超过则等于0)
2、函数的return 的值一般用来表示状态,0=成功

#方式1
function funcSum(){
    #  $1 $2 $3可以访问传递进来的参数
    #执行代码
    [return $var] #是否返回值属于可选,只能整形,最大255(超过则等于0),一般用来表示状态,0=成功
}

#方式2
funcSum(){
    #执行代码
    echo "${var}" #通过echo 利用标准输出返回值,调用处需要使用``或$()来接收返回值
}

方式3
ret=0
funcSum(){
    #执行代码
    ret=$[1+2] #通过全局变量处理返回值
}

调用函数

#对应方式1
funcSum 1 2 3 #注意:调用函数和调用脚本的形式一样
ret=$? #这里一定要注意返回值的大小是否超过255

#对应方式2
ret=`funcSum 1 2 3`

#对应方式3
echo ${ret} #由于ret是全局是全局变量,可以直接使用

运算符

文件测试运算符

名称说明
-e判断【某个东东】是否存在
-f判断档案是否存在
-d判断目录是否存在
-r -w -x判断属性
-s判断是否为空档案

整形运算符

注意:名称一列的运算符只能用于整形

名称别名说明
-eq=相等,注意: 如果在[] 中,只能是字符串
-ne!=不相等,注意: 如果在[] 中,只能是字符串
-gt>大于
-lt<小于
-ge>=大于等于
-le<=小于等于

字符串运算符

名称说明
-z是否为空字符串
-n是否为非空字符串
=两字符串是否相等
!=两字符串是否不相等

布尔运算符

名称说明
-a表示 逻辑与(and)
-o表示 逻辑或(or)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值