Shell 脚本基础

type
status
date
slug
summary
tags
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...