shell script(变量,运算符,流程控制,函数)(2)

以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

#!/bin/bash # author:W3Cschool教程 # url: echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3";

为脚本设置可执行权限,并执行脚本,输出结果如下所示:

$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 执行的文件名:test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3
另外,还有几个特殊字符用来处理参数: 参数处理说明
$#   传递到脚本的参数个数  
$*   以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
 
$$   脚本运行的当前进程ID号  
$!   后台运行的最后一个进程的ID号  
$@   与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
 
$-   显示Shell使用的当前选项,与set命令功能相同。  
$?   显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。  

五、shell运算符

Shell 和其他编程语言一样,支持多种运算符,包括:

算术运算符

关系运算符

布尔运算符

字符串运算符

文件测试运算符

1. 算术运算符

下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
+   加法   `expr $a + $b` 结果为 30。  
-   减法   `expr $a - $b` 结果为 10。  
*   乘法   `expr $a \* $b` 结果为  200。  
/   除法   `expr $b / $a` 结果为 2。  
%   取余   `expr $b % $a` 结果为 0。  
=   赋值   a=$b 将把变量 b 的值赋给 a。  
==   相等。用于比较两个数字,相同则返回 true。   [ $a == $b ] 返回 false。  
!=   不相等。用于比较两个数字,不相同则返回 true。   [ $a != $b ] 返回 true。  

注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]

2. 关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
-eq   检测两个数是否相等,相等返回 true。   [ $a -eq $b ] 返回 false。  
-ne   检测两个数是否相等,不相等返回 true。   [ $a -ne $b ] 返回 true。  
-gt   检测左边的数是否大于右边的,如果是,则返回 true。   [ $a -gt $b ] 返回 false。  
-lt   检测左边的数是否小于右边的,如果是,则返回 true。   [ $a -lt $b ] 返回 true。  
-ge   检测左边的数是否大等于右边的,如果是,则返回 true。   [ $a -ge $b ] 返回 false。  
-le  

检测左边的数是否小于等于右边的,如果是,则返回 true。

  [ $a -le $b ] 返回 true。  

3. 布尔运算符

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13839.html