Skip to content
xiaoyang 的头像xiaoyang发布于 2024-07-211,294 字阅读约 4 分钟浏览加载中

shell编程中常用的符号 ​

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

1. 单中括号 [] ​

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

sh
if [ "$a" -eq "$b" ]; then
    echo "a 等于 b"
fi

常见操作符:

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

2. 双中括号 [[]] ​

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

sh
if [[ "$a" == "$b" ]]; then
    echo "a 等于 b"
fi

常见操作符:

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

3. 双小括号 (()) ​

双小括号用于整数运算。

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

它还可以用于条件测试:

sh
if (( a == b )); then
    echo "a 等于 b"
fi

4. 花括号 {} ​

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

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

5. ${} ​

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

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

6. 单美元符号 $ ​

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

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

7. 反引号 ` ​

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

sh
result=`ls -l`
echo "$result"

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

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

9. 无引号 ​

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

sh
echo Hello, $name!
DISCUSSION

评论区

欢迎分享你的思考、补充或问题。

基于 VitePress 搭建