如何将括号发送到以括号为界的管道中?
Posted
技术标签:
【中文标题】如何将括号发送到以括号为界的管道中?【英文标题】:How to send parenthesis into pipe bounded by parenthesis? 【发布时间】:2017-07-14 19:34:24 【问题描述】:在 Windows .bat 文件中,我可以像这样使用重定向:
(echo connect / as sysdba
echo select sysdate from dual;
echo exit
) | sqlplus -s /nolog
它会运行(显然这个例子什么都不做)。如何将括号传递为这种格式的查询,例如:
(echo connect / as sysdba
echo select trunc(sysdate) from dual;
echo exit
) | sqlplus -s /nolog
不炸管?
【问题讨论】:
用插入符号^)
转义 echo 中的右括号
【参考方案1】:
您需要在右括号之前添加三个插入符号。
(
echo connect / as sysdba
echo select trunc(sysdate^^^) from dual;
echo exit
) | more
为什么? 在第一种情况下,您需要一个插入符号来转义括号以避免该块已关闭。
( echo test (test^) )
但是当你使用管道时,完整的结构被打包并转移到一个新的命令 exe。 在那里您需要第二次插入符号,但要转换此插入符号,您需要在原始回显中添加两个插入符号。 因此,您总共需要三个。
【讨论】:
以上是关于如何将括号发送到以括号为界的管道中?的主要内容,如果未能解决你的问题,请参考以下文章