自己做外贸网站能接到单吗,陵川网站建设,微信企业号可以做微网站吗,导购网站如何做免费推广一、分支语句
case ...in语句
shell中的switch语句
case $变量名 in常量1)语句;; -------类似于C中break的作用#xff0c;;;除了最后一条分之外#xff0c;都不能省略常量2)语句;; 常量n)语句;;*) -------类似于C中default#xff0c;但…一、分支语句
case ...in语句
shell中的switch语句
case $变量名 in常量1)语句;; -------类似于C中break的作用;;除了最后一条分之外都不能省略常量2)语句;;···· 常量n)语句;;*) -------类似于C中default但是*表示通配所有情况只能放在最后语句
esac
其中常用到的条件有
1|2|3|4)满足1234中任一个即可
[0-9]):满足0-9中任一个
[0-3]|4):满足0-3和4中的任一个
注意*通配所有情况如果想使用*表示其他分支的情况不能把*放在上面与default不一样 二、循环语句
在shell中循环语句不使用{}作为作用域使用do..done
1、while
while [ test语句 ] ------while test 表达式
do循环体
done
2、for
for也可以使用c语言风格的格式或者shell风格的格式让变量遍历字符串列表
第一种类似于C的格式
for ((表达式1;表达式2;表达式3))
do循环体
done第二种shell中的格式
for 变量名 in 字符串列表
do循环体
done
连续使用列表
1、seq 起始值 间隔值 终止值 ----在终端回显起始到终止值间的连续序列
seq 1 1 100 ---输出1-100
seq 如果后面只有一个数默认是终止值起始值和间隔值默认为1
拿到seq的结果需要使用命令置换符
seq 1 1 100
2、{1..3} ----展开1-3内的每一个数中间是两个.不能多写 3、select...in
select 变量名 in 选项列表
do语句块
done
变量名会一一遍历选项列表遍历次数个选项个数一致
执行逻辑
会在终端打印选项列表让用户选择用户选择是需要选择对应的序号
如果用户不输入直接回车会再打印一次选项列表
如果选择错误变量就获取到空值
一般select与case...in结合使用
如
select i in linux wins macos q Q
docase $i inlinux)echo 打开的是Linux系统;;wins)echo 打开的是wins系统;;macos)echo 打开的是macos系统;;q)break;;Q)exit;;*)echo 选择错误esac
doneecho hello world
三、辅助控制关键字
与c中跳出循环关键字相似
1、break
退出循环
break n -------退出n层循环
break 1 -------1可以不写
2、continue
跳出循环
continue n -------退出n层本次循环
continue 1 -------1可以不写 四、函数
由于脚本中是不存在返回值类型所以在函数名前是function开头可加可不加之后形参列表没有参数
function 函数名()
{函数体return 返回值(如果实现函数时有返回值就写return)
}
shell中函数的注意事项:
1、function在定义函数时可以加也可以不加(建议加)
2、()内不能添加任何内容函数是否有参数根据调用来决定
3、如果函数有返回值直接在函数的定义中写出return
4、shell中的函数仍然满足先定义后调用的原则shell中函数的定义和声明不能分开
外部传参不能传到函数内只能给全局函数传参需要的方式是
函数名 实参1 实参2 实参3 ···· (函数有参数的情况)
函数名 (没有参数)
而函数内部同样可以通过位置变量获取${n}
脚本的外部传参和函数的外部传参互不干扰
如果在函数中使用位置变量获取到的就是函数的外部参数
如果在脚本中使用位置变量获取到的就是脚本的外部参数$0只能获取脚本名
当想获取函数中的返回值时由于不像c中有类型所以获取的方式也不一样使用
$? 获取函数的返回值 -----使用$?的上一条指令一定是函数的调用
$?的本质是获取到上一条指令的执行结果
例如
#!/bin/bash
function fun()
{echo hello world
}function add()
{echo $(($1$2))echo $0a258return $a #返回值只能返回0-255之中的数
}
add 12 34
var$? #使用$?接收函数的返回值
echo $var
echo $a
在调用传参之后使用var接受上一条结束的返回值
而在返回值超过258时使用全局也能进行传递Bash 中的退出状态码包括 return 语句的值是 8 位无符号整数所以它们会自动进行模 256 运算
或者使用命令置换的方法
function add() {echo 258
}result$(add)
echo $result # 这将输出 258local声明局部变量
在局部使用将变量定义成局部变量
function add()
{ #echo $(($1$2)) #echo $0 a258 local b80 #被定义成了一个局部变量 echo $b unset b #unset是可以清空局部变量 echo $b return $a #返回值只能返回0-255之中的数
} 实现一个对数组求和的函数数组通过实参传递给函数
#!/bin/bashfunction array_sum() {local sum0for num in $; dosum$((sum num))doneecho $sum
}result$(array_sum $)
echo The sum of the array is: $result
2.写一个函数输出当前用户的uid和gid并使用变量接收结果
#!/bin/bash
uid0
gid0function id_func(){
uid$(id | cut -d -f1 | cut -d -f2 | cut -d( -f1)
gid$(id | cut -d -f2 | cut -d -f2 | cut -d( -f1)}
id_func
echo UID: $uid
echo GID: $gid