SHELL脚本 4年前

编程语言
899
SHELL脚本

脚本中需要用sqlplus获取数据库的一行数据,语句很简单,不想传递sql文件,可以使用Here Document重定向查询语句:

sqlplus -s $user/$token@$sid <<EOF
select localtimestamp from dual;
exit;
EOF

但是使用了Here Document后,脚本的缩进格式有点乱了😢

那么我们把语句放进变量里面吧。

stmt="select localtimestamp from dual;exit;"
sqlplus -s $user/$token@$sid <<EOF
$stmt
EOF

噫,这不还是乱的吗,有啥区别。还不直接用文件当变量。

echo "select localtimestamp from dual;exit;" > stmt.sql
sqlplus -s $user/$token@$sid @stmt.sql

有必要生成这么多中间产物吗?况且这文件名不随机化,以后会搞大系统啊。

能不能直接上管道?

echo "select localtimestamp from dual;exit;" | xargs -I {} .sqlplus -s $user/$token@$sid {}

不行。因为标准输入和参数输入是两个概念。

小白
看烟花在绽放啊,站在同一片天空下,在最美的年华。
3
发布数
2
关注者
1940
累计阅读

热门教程文档

Spring Cloud
8小节
Typescript
31小节
PHP
52小节
C++
73小节
Python
76小节
广告