kizumi_header_banner_img

这里是幻灬十一的博客,欢迎来到我的世界

加载中

文章导读

shell脚本变量结构


avatar
11 2025年5月28日 8

变量

一、变量定义规则

变量名 = 值等号两边不能有空格,这是最容易踩的坑!)

只能用 字母、数字、下划线,不能以数字开头

区分大小写(nameName 是两个变量)

赋值字符串如果有空格,必须加引号

示例:name=”张三”

二、变量使用(调用)

使用变量必须加 $ 符号,推荐用 ${变量名} 格式

示例:echo ${name}

二、字符串变量

单引号:字符串输出,不解析变量

双引号:解析变量,拼接字符串

运算符

一、算术运算符(加减乘除取余)

Shell 不能直接用 + – * /,必须用 $(( )) 或 expr。

示例:

a=10
b=20

echo $((a + b)) # 加
echo $((a – b)) # 减
echo $((a * b)) # 乘
echo $((b / a)) # 除
echo $((a % b)) # 取余
echo $((a ** 2)) # 平方

二、关系运算符(数字比较)

只能用于数字,不能用于字符串!

必须配合 if 使用,格式:if [ $a -eq $b ]; then

常用运算符:

  • -eq 等于 (==)
  • -ne 不等于 (!=)
  • -gt 大于 (>)
  • -lt 小于 (<)
  • -ge 大于等于 (>=)
  • -le 小于等于 (<=)

三、字符串运算符

专门用来判断 字符串

  • = 判断相等
  • != 判断不等
  • -z 字符串长度为 0 返回真
  • -n 字符串长度不为 0 返回真

示例:

str1=”abc”
str2=”abcd”

if [ $str1 = $str2 ]; then
echo “相等”
else
echo “不相等”
fi

判断字符串是否为空

if [ -z “$str1” ]; then
echo “空字符串”
fi

四、逻辑运算符(与、或、非)

写法 1:[] 里用

  • -a 与 (and)
  • -o 或 (or)
  • !

if [ $a -gt 10 -a $b -lt 30 ]; then

写法 2:[[]] 里用(推荐)

  • &&
  • ||
  • !

if [[ $a > 10 && $b < 30 ]]; then

五、文件测试运算符(判断文件 / 目录)

最常用!写脚本必用:

  • -e 文件 / 目录是否存在
  • -f 是否是普通文件
  • -d 是否是目录
  • -r 是否可读
  • -w 是否可写
  • -x 是否可执行
  • -s 文件是否不为空

示例:

file=”test.sh”

if [ -f $file ]; then
echo “是文件”
fi

if [ -d $file ]; then
echo “是目录”
fi

case结构

case 就是 多分支选择语句,相当于 if...elif...else 的简化版,专门用来匹配多个固定值,代码更整洁、可读性更强。

case 变量 in
模式1)
命令1
;; # 每个分支结束必须写两个分号
模式2)
命令2
;;
*) # 通配符,相当于 else,匹配所有未命中的情况
默认命令
;;
esac # 结束标记,是 case 倒过来写

!/bin/bash

echo “===== 菜单 =====”
echo “1. 查看当前目录”
echo “2. 查看时间”
echo “3. 查看用户”
echo “================”
read -p “请输入选项:” choice

case $choice in
1)
pwd
;;
2)
date
;;
3)
whoami
;;
*)
echo “输入错误!”
;;
esac



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码