Shell cat 保存文件方式

背景

在 Shell 中保存文件可以通过 echo 保存一个字符串, cat 保存一个字符片段,最近在用 cat 编写 Nginx 配置文件的时候,想要写入 $test 类似字段,但是 Shell 会自动将其识别为变量而忽略,记录下该方式。

cat 编写文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@yiran-30-250:/tmp
$ cat cat.sh
#!/usr/bin/env bash
cat << EOF > /tmp/yiran
aaa
bbb
ccc
ddd
$eee
$fff
EOF
root@yiran-30-250:/tmp
$ bash cat.sh
root@yiran-30-250:/tmp
$ cat yiran
aaa
bbb
ccc
ddd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@yiran-30-250:/tmp
$ cat cat2.sh
#!/usr/bin/env bash
cat << 'EOF' > /tmp/yiran
aaa
bbb
ccc
ddd
$eee
$fff
EOF
root@yiran-30-250:/tmp
$ bash cat2.sh
root@yiran-30-250:/tmp
$ cat yiran
aaa
bbb
ccc
ddd
$eee
$fff