| 知乎专栏 | 
cat <<End-of-message 8 ------------------------------------- 9 This is line 1 of the message. 10 This is line 2 of the message. 11 This is line 3 of the message. 12 This is line 4 of the message. 13 This is the last line of the message. 14 ------------------------------------- End-of-message
		
MYSQL=mysql
MYSQLOPTS="-h $zs_host -u $zs_user -p$zs_pass $zs_db"
$MYSQL $MYSQLOPTS <<SQL
SELECT
        category.cat_id AS  cat_id ,
        category.cat_name AS  cat_name ,
        category.cat_desc AS  cat_desc ,
        category.parent_id AS  parent_id ,
        category.sort_order AS  sort_order ,
        category.measure_unit AS  measure_unit ,
        category.style AS  style ,
        category.is_show AS is_show ,
        category.grade AS  grade
FROM  category
SQL
		
		
		<<-LimitString可以抑制输出时前边的tab(不是空格). 这可以增加一个脚本的可读性.
cat <<-ENDOFMESSAGE This is line 1 of the message. This is line 2 of the message. This is line 3 of the message. This is line 4 of the message. This is the last line of the message. ENDOFMESSAGE
关闭参数替换
NAME="John Doe" RESPONDENT="the author of this fine script" cat <<'Endofmessage' Hello, there, $NAME. Greetings to you, $NAME, from $RESPONDENT. Endofmessage
NAME="John Doe" RESPONDENT="the author of this fine script" cat <<\Endofmessage Hello, there, $NAME. Greetings to you, $NAME, from $RESPONDENT. Endofmessage
your_shell 2>&1
错误输出演示
[root@localhost ~]# id ethereum id: ethereum: no such user # 这里可以看到错误输出 id: ethereum: no such user [root@localhost ~]# id ethereum > test id: ethereum: no such user 我们尝试将他重定向到文件 test,但是结果仍是输出 id: ethereum: no such user [root@localhost ~]# cat test [root@localhost ~]# 查看 test 文件,内容空。
继续做实验
[root@localhost ~]# id ethereum > test 2>&1 [root@localhost ~]# cat test id: ethereum: no such user
测试实验结果成功了,将错误输出转到标准输出,然后写入文件。
echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward;
				
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://du8c1in9.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
				
				
			cat << EOF > foo.sh printf "%s was here" "$name" EOF cat >> foo.sh <<EOF printf "%s was here" "$name" EOF