Yang's blog Yang's blog
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xiaoyang

编程爱好者
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • System

    • HomeBrew介绍
  • Git

    • Git 命令入门指南
  • shell

    • shell编程中常用的符号
      • 1. 单中括号 []
      • 2. 双中括号 [[]]
      • 3. 双小括号 (())
      • 4. 花括号 {}
      • 5. ${}
      • 6. 单美元符号 $
      • 7. 反引号 ` ``
      • 8. 双引号 "" 和单引号 ''
      • 9. 无引号
  • docker

    • Docker介绍
    • Dockerfile :构建自己的 Docker 镜像
    • Docker Compose :容器编排工具
  • Linux

    • Linux基础知识
    • Linux 文件系统
    • Linux 用户管理
    • Linux 权限与安全
    • Linux 网络管理
    • Linux 进程管理
    • Linux 常用命令
  • 命令手册
  • shell
xiaoyang
2024-07-21
目录

shell编程中常用的符号推荐

# shell编程中常用的符号

Shell 编程中有许多不同类型的括号和符号,每种符号都有其独特的用法和功能。本文将介绍常见的括号和符号,包括 [[]], [], (()), {}, ${}, $ 等,并解释它们的具体用途。

# 1. 单中括号 []

单中括号用于条件测试。它通常用于 if 语句和 while 循环中。

if [ "$a" -eq "$b" ]; then
    echo "a 等于 b"
fi
1
2
3

常见操作符:

  • 数值比较:-eq, -ne, -lt, -le, -gt, -ge
  • 字符串比较:=, !=, -z (字符串是否为空), -n (字符串是否非空)
  • 文件比较:-e (文件是否存在), -f (是否为文件), -d (是否为目录)

# 2. 双中括号 [[]]

双中括号是增强型条件测试,支持更多的条件表达式和模式匹配。

if [[ "$a" == "$b" ]]; then
    echo "a 等于 b"
fi
1
2
3

常见操作符:

  • == 和 != 用于字符串比较
  • && 和 || 用于逻辑操作

# 3. 双小括号 (())

双小括号用于整数运算。

result=$((a + b))
echo "结果是 $result"
1
2

它还可以用于条件测试:

if (( a == b )); then
    echo "a 等于 b"
fi
1
2
3

# 4. 花括号 {}

花括号有多种用途,主要用于命令块、变量扩展和字符串生成。

  • 命令块:将多条命令放在一起,作为单一命令执行。
{ echo "第一行"; echo "第二行"; } > file.txt
1
  • 变量扩展:避免变量名与其他字符混淆。
echo "Hello, ${name}!"
1
  • 字符串生成:生成一系列字符串或文件名。
echo {1..5}  # 输出 1 2 3 4 5
1

# 5. ${}

${} 用于变量替换和参数扩展。

  • 基本变量替换:
name="John"
echo "Hello, ${name}!"
1
2
  • 参数扩展:处理变量的默认值、长度、子串等。
echo ${var:-"默认值"}  # 如果 var 未定义,则使用默认值
echo ${#name}  # 输出变量的长度
1
2

# 6. 单美元符号 $

单美元符号用于变量替换和命令替换。

  • 变量替换:
echo $name
1
  • 命令替换:将命令的输出作为参数。
result=$(ls -l)
echo "$result"
1
2

# 7. 反引号 `

反引号用于命令替换,与 $() 功能类似,但语法较旧。

result=`ls -l`
echo "$result"
1
2

# 8. 双引号 "" 和单引号 ''

  • 双引号:保留字符串中的空格和特殊字符,但允许变量替换和命令替换。
echo "Hello, $name!"
1
  • 单引号:完全保留字符串中的字符,不进行变量替换和命令替换。
echo 'Hello, $name!'
1

# 9. 无引号

不加引号时,空格和特殊字符会被解释为分隔符或命令。

echo Hello, $name!
1
编辑 (opens new window)
#shell
上次更新: 2025/04/01, 01:48:12

← Git 命令入门指南 Docker介绍→

最近更新
01
操作系统
03-18
02
Nginx
03-17
03
后端服务端主动推送消息的常见方式
03-11
更多文章>
Theme by Vdoing | Copyright © 2023-2025 xiaoyang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式