跳转至

第 15 章 呈现数据

约 140 个字 19 行代码 1 张图片 预计阅读时间 1 分钟

格式化输出、重定向 FD、临时文件与 exec。

15.1 格式化 echo / printf

Bash
printf "Name: %s, Age: %d\n" "$name" "$age"
printf "%10s %5d\n" str num    # 宽度对齐

15.2 文件描述符

FD 用途
0 stdin
1 stdout
2 stderr
Bash
exec 3> file       # 打开 FD 3 写
echo "data" >&3
exec 3>&-          # 关闭

exec 3<> file      # 读写
read line <&3

15.3 临时文件

Bash
tmp=$(mktemp /tmp/myapp.XXXXXX)
trap "rm -f $tmp" EXIT

tmpdir=$(mktemp -d)

15.4 忽略信号

Bash
trap "echo Caught; exit" SIGINT SIGTERM
trap '' SIGINT       # 忽略 Ctrl+C
trap - SIGINT        # 恢复默认

15.5 tee 与调试输出

Bash
cmd 2>&1 | tee run.log          # stdout+stderr 写日志且显示
exec > >(tee -a deploy.log) 2>&1   # 整个脚本输出 tee
set -x                          # 调试:打印每条命令
set +x                          # 关闭

评论