qfedu-linux-advanced-level/day1/README.md

1.8 KiB
Raw Blame History

在 Bash 脚本中,圆括号 () 和花括号 {} 有不同的用途和行为。

  1. 圆括号 ()

    • 用途:
      • 创建子 shell在圆括号中的命令序列将在一个子 shell 中执行,子 shell 是一个独立的进程,它会继承父 shell 的环境变量和文件描述符,但是变量的修改在子 shell 中不会影响到父 shell。
      • 数组赋值:在圆括号中可以定义数组,并将值赋给数组。
    • 示例:
      (command1; command2; command3)
      
    • 注意事项:
      • 在圆括号中的命令序列与外部环境是隔离的,所以在子 shell 中定义的变量对于父 shell 是不可见的。
  2. 花括号 {}

    • 用途:
      • 命令扩展和分组:花括号可以用于扩展和分组命令,可以将多个命令组合在一起,作为一个整体进行处理。
      • 文件名扩展:花括号可以用于生成文件名的列表,例如使用通配符进行文件名扩展。
    • 示例:
      { command1; command2; }
      
    • 注意事项:
      • 花括号中的命令序列会在当前 shell 中执行,不会创建子 shell。
      • 花括号中的命令序列可以使用分号 ; 或换行符分隔多个命令。

总结:

  • 圆括号 () 用于创建子 shell并在子 shell 中执行命令序列。
  • 花括号 {} 用于命令扩展和分组,将多个命令组合在一起进行处理。

判断文件

test -e "$1" # 与下面等价 [ -e "$1" ] # 与上面等价

更多判断 -d 是目录 -f 是文件 -e 是存在 -r 是可读 -w 是可写 -x 是可执行 -s 是非空 -h 是软链接 -L 是软链接 -p 是管道 -S 是 socket -b 是块设备 -c 是字符设备 -t 是终端 -g 是设置了组 ID -u 是设置了用户 ID -k 是设置了粘滞位