自动化测试-基础知识—Bash基础
Bash在 Bash 中,美元符号 $ 可以用于引用变量或者表达式的值。Bash 中的变量并不需要事先声明,而是在第一次赋值时自动创建。基于这个特性,我们可以通过给变量名加上 $ 的方式来引用它的值,比如 $var 表示引用变量 var 的值。
在 Bash 中,使用 $ 还有其他一些常见的用法,例如:
[*]$0:表示执行当前脚本的文件名,也就是脚本的第一个参数;
[*]$1、$2 等:表示脚本的第 1、2 个参数;
[*]$#:表示传递给脚本的参数个数;
[*]$?:表示上一个命令的返回值,在 Linux 系统中,0 表示成功,非零表示失败。
另外,Bash 中还支持一些特殊符号,例如:
[*]$$:表示当前进程的进程 ID;
[*]$!:表示最近一个后台作业(通过 & 运行的命令)的进程 ID;
[*]$* 或 $@:表示所有传递给脚本的参数,区别在于前者将所有参数看成一个字符串,后者将每个参数视为独立的字符串。
除了以上用法之外,Bash 中还有很多其他的用法,例如用于替换命令行的通配符 $(),用于引用环境变量的 ${var},等等。总之,美元符号 $ 是 Bash 中一个非常重要的特性,掌握好它的用法可以更加方便地编写脚本和命令行操作。
条件选择、判断
条件选择if
if 判断条件 1 ; then
条件为真的分支代码
elif 判断条件 2 ; then
条件为真的分支代码
elif 判断条件 3 ; then
条件为真的分支代码
else
以上条件都为假的分支代码
fi判断年龄
#!/bin/bash
read -p "请输入年龄:" age
# 判断 age 中是否包含非数字字符
if [[ "$age" =~ [^0-9]+ ]]; then
echo "输入的年龄必须是数字"
exit 1
fi
# 将 age 转换为数字,并判断范围
if (( age < 18 || age > 150 )); then
echo "输入的年龄必须在 18 到 150 之间"
else
echo "输入的年龄为 $age"
fi条件判断 case
case $name in;
PART1)
cmd
;;
PART2)
cmd
;;
*)
cmd
;;
esac判断yes or no
#!/bin/bash
read -p "请输入 yes 或 no:" answer
# 将 answer 转换为小写字母
answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
# 判断输入是否为 "yes"
if [[ "$answer" = y || "$answer" = yes ]]; then
echo "输入为 yes"
# 判断输入是否为 "no"
elif [[ "$answer" = n || "$answer" = no ]]; then
echo "输入为 no"
else
echo "无法识别输入"
fi#!/bin/bash
echo "请输入yes或no,可以回答 Y/y/yes/YES 或 N/n/no/NO:"
read answer
case "$answer" in
#正则:以大写或小写的y开头,后面跟着大写或小写的e,再后面跟着大写或小写的s,组成的字符串。
|)
echo "你回答的是yes"
;;
|)
echo "你回答的是no"
;;
*)
echo "你的回答无效"
;;
esac四个循环
for循环
用法格式
for name in 列表 ;do
循环体
done
for (( exp1; exp2; exp3 )) ;do
cmd
done案例
求出(1+2+...+n)的总和
#!/bin/bash# 读取用户输入的数字,判断是否为正整数# `-ge`:是比较运算符,表示“大于等于”的关系;# '-eq':是比较运算符,表示“等于”的关系while truedo read -p "请输入一个大于等于 1 的正整数: " num if [[ $num =~ ^+$ ]]; then if [ $num -ge 1 ]; then break fi fidone# 初始化总和为 0sum=0# 使用一个 for 循环累加 1 到 num 的数字for ((i=1;i
页:
[1]