shell中使用EOF赋值变量

看事容易做事难,事非经过不知难。

平时看博客的时候以为”EOF”这就是可以多行输入,确实是这样!
因 sql 语句都较长,且有换行,直接放命令行运行出错,于是想到用EOF,先把sql语句写好赋值给一个变量,然后通过变量引用。
想法很好,做的时候却遇到问题了,怎么也无法把这个sql语句赋值到变量上,折腾了好久也没搞懂为什么,于是放弃了,虽然用其他方法也完成了需求,但这个简单的问题却一直扰着我,百思不得其解。
直到第二个星期,还是想试试为什么用不了,试了好一会,也是无解,最后想放弃了,不知道为啥,就在最后偶然一试,却成功了!
于是记下这个简单的用法:

#!/bin/bash

sql=$(cat<<EOF     //1. 2. 3 
hello
world
EOF     //4
)           //5
echo $sql

说明:
1. 注意这个括号 
2. cat后面使用 <<EOF
3. 若接文件可空格后在后面写 cat<<EOF a.txt
4. 单独一行结束内容输入
5. 匹配之前的括号) 完成 退出到命令行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值