专业网站设计公司哪家好,网站链接建设及引流营销,WordPress字段值展示页面,常州城投建设工程招标有限公司网站文章目录 一、shell参数传递二、shell中的特殊变量三、shell中的函数四、shell函数中的参数 一、shell参数传递
运行 Shell 脚本文件时我们可以给它传递一些参数#xff0c;这些参数在脚本文件内部可以使用$n的形式来接收#xff0c;例如#xff0c;$1 表示第一个参数… 文章目录 一、shell参数传递二、shell中的特殊变量三、shell中的函数四、shell函数中的参数 一、shell参数传递
运行 Shell 脚本文件时我们可以给它传递一些参数这些参数在脚本文件内部可以使用$n的形式来接收例如$1 表示第一个参数$2 表示第二个参数依次类推。
#!/bin/bashecho 参数1 $1
echo 参数2 $2
xhhcluo:~/study/shell$ ./shell-5.sh abcd 12346
参数1 abcd
参数2 12346二、shell中的特殊变量
变量含义$0当前脚本的文件名$nn≥1传递给脚本或函数的参数。n 是一个数字表示第几个参数。例如第一个参数是 $1第二个参数是 $2。$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$传递给脚本或函数的所有参数。当被双引号 包含时$ 与 $* 稍有不同我们将在《Shell ∗ 和 *和 ∗和的区别》一节中详细讲解。$?上个命令的退出状态或函数的返回值我们将在《Shell $?》一节中详细讲解。$$当前 Shell 进程 ID。对于 Shell 脚本就是这些脚本所在的进程 ID #!/bin/bashecho Process ID: $$echo File Name: $0echo First Parameter : $1echo Second Parameter : $2echo All parameters 1: $echo All parameters 2: $*echo Total: $#xhhcluo:~/study/shell$ ./shell-6.sh adcd 12346
Process ID: 52421
File Name: ./shell-6.sh
First Parameter : adcd
Second Parameter : 12346
All parameters 1: adcd 12346
All parameters 2: adcd 12346
Total: 2
三、shell中的函数
linux shell 可以用户定义函数然后在shell脚本中可以随便调用。
#!/bin/bashadd(){echo 输入第一个数字: read aecho 输入第二个数字: read becho 两个数字分别为 $a 和 $b !return $(($a$b))
}
add
echo 输入的两个数字之和为 $? !这里需要注意的是 $? 显示最后命令的退出状态。0表示没有错误其他任何值表明有错误。 $? 仅对其上一条指令负责一旦函数返回后其返回值没有立即保存入参数那么其返回值将不再能通过 $? 获得。
比如
#!/bin/bashfunction demoFun1(){echo 这是我的第一个 shell 函数!return expr 1 1
}demoFun1
echo $?
echo $?执行结果
这是我的第一个 shell 函数!
2
0可以看到第二个 $? 并没有正确的返回出函数的执行结果而是返回的一个0.证明函数没有错误。
四、shell函数中的参数
#!/bin/bashadd(){echo 第一个参数为 $1 !echo 第二个参数为 $2 !echo 第十个参数为 $10 !echo 第十个参数为 ${10} !echo 第十一个参数为 ${11} !echo 参数总数有 $# 个!echo 作为一个字符串输出所有参数 $* !
}
add 1 2 3 4 5 6 7 8 9 34 73打印结果 注意 10 不能获取第十个参数获取第十个参数需要 10 不能获取第十个参数获取第十个参数需要 10不能获取第十个参数获取第十个参数需要{10}。当n10时需要使用${n}来获取参数。
如果使用 $10来表示 会识别为 $1 字符 0 所以这里显示为 10 比如我这里修改下顺序
#!/bin/bashadd(){echo 第一个参数为 $1 !echo 第二个参数为 $2 !echo 第十个参数为 $21 !echo 第十个参数为 ${10} !echo 第十一个参数为 ${11} !echo 参数总数有 $# 个!echo 作为一个字符串输出所有参数 $* !
}
add 1 3 2 5 4 6 7 8 9 34 73