shell中的一些关键字

shell中的$0 $n $# $* $@ $? $$

  • $0
    当前脚本的文件名

  • $n
    传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。

  • $#
    传递给脚本或函数的参数个数。

  • $*
    传递给脚本或函数的所有参数。

  • @ 传 递 给 脚 本 或 函 数 的 所 有 参 数 。     @ 传递给脚本或函数的所有参数。    @  * 和 @ 的 区 别     @ 的区别    @  * 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号" “包含时,都以”$1" “ 2 " … " 2"…" 2""n” 的形式输出所有参数,被双引号" “包含时,”$*" 会将所有的参数作为一个整体;"@" 会将各个参数分开,以换行形式输出所有参数。

  • $?
    上个命令的退出状态,或函数的返回值。

  • $$
    当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

  • [] 中括号
    常出现在流程控制中,扮演括住判断式的作用。if [ “$?” != 0 ]thenecho "Executes error"exit 1fi
    这个符号在正则表达式中担任类似 “范围” 或 “集合” 的角色
    rm -r 200[1234]
    上例,代表删除 2001, 2002, 2003, 2004 等目录的意思。

  • [[]]
    这组符号与先前的 [] 符号,基本上作用相同,但她允许在其中直接使用 || 与 && 逻辑等符号。
    #!/bin/bashread akif [[ $ak > 5 || $ak < 9 ]]thenecho $akfi

  • * 星号 (wild card)
    相当常用的符号。在文件名扩展(Filename expansion)上,她用来代表任何字元,包含 null 字元。
    在运算时,它则代表 “乘法”。
    let “fmult=2*3”
    除了内建指令 let,还有一个关于运算的指令 expr,星号在这里也担任"乘法"的角色。不过在使用上得小心,他的前面必须加上escape 字元。

  • ** 次方运算
    两个星号在运算时代表 “次方” 的意思。
    let "sus=2**3"echo “sus = $sus” # sus = 8

  • <>不等于

  • ( )
    是包含指令的符号

  • (())
    这组符号的作用与 let 指令相似,用在算数运算上,是 bash 的内建功能。所以,在执行效率上会比使用 let指令要好许多。

  • if判断
    if [ -f file ] 如果文件存在
    if [ -d … ] 如果目录存在
    if [ -s file ] 如果文件存在且非空
    if [ -r file ] 如果文件存在且可读
    if [ -w file ] 如果文件存在且可写
    if [ -x file ] 如果文件存在且可执行


if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<


If [ $a = $b ] 如果string1等于string2
字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值