网站优化怎么学,网络管理系统逻辑上的四个组成,常州哪家做网站好,网站管理与建设试题声明#xff1a;学习视频来自b站up主 泷羽sec#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址#xff1a;shell(6)if条件判断与for循环结构_哔哩哔哩_bilibili 一、if条件判断
在Shell脚本中#xff0c;if语句用于基于条件的评估来执行不同的代码块。…声明学习视频来自b站up主 泷羽sec如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址shell(6)if条件判断与for循环结构_哔哩哔哩_bilibili 一、if条件判断
在Shell脚本中if语句用于基于条件的评估来执行不同的代码块。以下是if语句的基本结构和一些高级用法
基本结构
if [ 条件 ]; then# 如果条件为真则执行这里的命令
else# 如果条件为假则执行这里的命令
fi
条件表达式 字符串比较: $str1 $str2相等。$str1 ! $str2不等。 数值比较: -eq等于。-ne不等于。-gt大于。-lt小于。-ge大于等于。-le小于等于。 文件测试: -e文件或目录存在。-f文件存在。-d目录存在。-r文件可读。-w文件可写。-x文件可执行。 字符串测试: -z字符串长度为零。-n字符串长度非零。
高级用法 使用[[ ]]: 提供了更多的功能如正则表达式匹配和模式扩展。自动引用变量防止单词拆分和文件名扩展。支持和||作为逻辑运算符。 逻辑运算符: -a逻辑与。-o逻辑或。 复合命令: 如果前一个命令成功则执行下一个命令。||如果前一个命令失败则执行下一个命令。
示例
#!/bin/bash# 字符串比较
if [ $str1 $str2 ]; thenecho 字符串相等
elseecho 字符串不相等
fi# 数值比较
if [ $num1 -eq $num2 ]; theneco 数值相等
elseecho 数值不相等
fi# 文件测试
if [ -f filename ]; thenecho 文件存在
elseecho 文件不存在
fi# 字符串测试
if [ -z $str ]; thenecho 字符串为空
elseecho 字符串非空
fi# 逻辑运算符
if [ $num1 -gt 10 -a $num2 -lt 20 ]; thenecho $num1 大于 10 且 $num2 小于 20
fi注意事项
总是使用双引号来引用变量和字符串以避免空格和特殊字符引起的问题。在[[ ]]中使用和!进行字符串比较而不是和!。
二、for循环结构
在Shell脚本中for循环是一种用于重复执行一系列命令的控制流结构。它可以根据不同的参数和语法结构来迭代执行。以下是几种常见的for循环用法
基本语法
for 变量 in 列表
do# 循环体中的命令
done
迭代列表中的每个元素
for item in element1 element2 element3
doecho $item
done
例子
for str in hello world
doecho $str
done
这个脚本的作用是 for str in hello world这行定义了一个for循环其中str是循环变量它将依次取得字符串hello world中每个单词的值。注意如果字符串中包含空格Shell会将其视为多个单词。 do这是循环体开始的标志。 echo $str这是循环体内的命令它将打印出当前迭代的字符串即循环变量str的值。 done这是循环体结束的标志。
当这个脚本执行时它将输出
hello
world
每个单词占一行因为for循环将按照空格将字符串分割成单词并在每次迭代中将其中一个单词赋值给变量str。