Linux 终端命令速查表 -- 23 Shell 脚本速查表

发布时间:2026/8/20 23:00:01
Linux 终端命令速查表 -- 23 Shell 脚本速查表 脚本基础Shell 脚本是一个包含命令的文本文件,Shell 会按顺序执行这些命令。第一行应该是一个shebang,告诉系统使用哪个解释器。#!/bin/bash#!/usr/bin/env bash使脚本可执行并运行它。chmod+x script.sh ./script.sh在脚本顶部使用set选项以尽早捕获错误:-e在第一个错误时退出,-u将未设置变量视为错误,-o pipefail使管道中任一命令失败时整个管道失败。set-euopipefail变量变量赋值时=两侧不能有空格。使用双引号包裹变量引用以防止单词分割。表达式说明VAR=value赋值VAR=$(command)捕获命令输出(命令替换)$VAR读取值${VAR}带明确边界的读取"$VAR"安全引用读取${VAR:-default}若 VAR 未设置或为空,使用默认值${VAR:=default}若 VAR 未设置或为空,赋默认值${VAR:+alternate}若 VAR 已设置且非空,使用替代值${VAR:?error msg}若 VAR 未设置或为空,报错退出${#VAR}值的长度readonly VAR设为只读变量export VAR使变量对子进程可用引号引号控制 Shell 的扩展行为。不确定时,使用双引号。表达式说明'text'单引号:所有内容原样保留"text"双引号:$变量 和 $(命令) 会被扩展\$HOME反斜杠转义单个字符始终引用变量引用:"$VAR"能处理值中的空格,未引用的$VAR会被拆分为多个单词。特殊变量这些变量由 Shell 在脚本运行时自动设置。变量说明$0脚本名称$1..$9位置参数(参数)${10}第 10 个及之后的位置参数$#参数个数$@所有参数,每个作为独立单词$*所有参数,作为一个字符串$?上一条命令的退出状态$$当前 Shell 的 PID$!最后一个后台命令的 PID$_上一条命令的最后一个参数将参数传递给另一个命令时优先使用"$@":它保留每个参数作为独立单词。字符串操作Bash 提供内置的字符串操作,无需外部命令。表达式说明${VAR#pattern}从开头删除最短匹配${VAR##pattern}从开头删除最长匹配${VAR%pattern}从末尾删除最短匹配${VAR%%pattern}从末尾删除最长匹配${VAR/old/new}替换第一次出现${VAR//old/new}替换所有出现${VAR:offset}从偏移量开始的子串${VAR:offset:length}从偏移量开始、指定长度的子串${VAR^}首字符大写${VAR^^}全部大写${VAR,}首字符小写${VAR,,}