Shell 脚本基础

type
Post
status
Published
date
Nov 12, 2025
slug
summary
tags
Centos7
Linux基础
Shell
category
学习笔记
icon
password

一、Shell 脚本简介

Shell 脚本是一个文本文件,通常以 .sh 结尾,用于自动化执行一系列命令,尤其适用于重复性任务。

二、输出命令

2.1 echo 命令

用于输出文本内容。

2.2 Here Document(多行输出)

用于输出多行文本。

2.3 单引号 vs 双引号

  • 单引号:禁止所有转义,原样输出。
  • 双引号:允许变量和转义字符(如 \\n\\t)。
history 命令

三、重定向

3.1 标准文件描述符

  • 0:标准输入(stdin)
  • 1:标准输出(stdout)
  • 2:标准错误(stderr)

3.2 输出重定向

  • >:覆盖写入
  • >>:追加写入
  • 2>:重定向错误输出
  • &>:重定向所有输出
示例:

3.3 输入重定向


四、变量

4.1 变量定义与命名规范

  • 命名规范:字母、数字、下划线,见名知意,不与关键字冲突。
  • 定义变量:变量名=值(注意等号两边不能有空格)

4.2 变量调用

  • 使用 $变量名${变量名}(推荐后者避免歧义)

4.3 命令结果赋值

  • 使用 $(命令) 或反引号 `命令`
示例:

4.4 交互式输入

4.5 数学运算

  • 使用 let$(( ))

五、环境变量

5.1 查看环境变量

5.2 设置环境变量

5.3 常用环境变量

  • HISTSIZE:历史命令条数
  • HISTTIMEFORMAT:历史命令时间格式
  • LANG:系统语言

六、特殊变量

  • $?:上一条命令的退出状态(0 表示成功)

七、awk 基本用法

用于文本分割和处理,默认以空格分隔。
示例:

八、脚本编写与执行

8.1 脚本结构

8.2 执行方式

  1. bash script.sh
  1. 添加执行权限后直接运行:

九、补充知识点

9.1 变量只读

9.2 位置参数

  • $0:脚本名
  • $1, $2, ...:第1、2个参数
  • $#:参数个数
  • $@:所有参数

9.3 数组变量

9.4 条件判断


十、建议

  • 使用 set -e 让脚本在出错时自动退出。
  • 使用 set -u 防止使用未定义变量。
  • 密码处理应更安全,避免明文记录。

Loading...