如何在bash命令中声明变量。看"?“
我以为我们几乎可以运行任何bash声明!或者排在前面的主机
#!/bin/bash
sqlplus scott/tiger@orcl << EOF
! export v10="Hi" Doesn't work, why?
! echo $v10 Doesn't work, why?
! echo "Done" Works perfectly and also other bash commands
select * from dept; Works perfectly
exit
EOF谢谢
发布于 2016-05-15 02:17:49
@jordanm所说的“可能”就是正在发生的事情。当您从sqlplus中指定主机命令时,生成一个单独的shell进程,由该进程执行命令,然后终止该进程,并将控制返回到sqlplus。在子shell进程中设置的任何环境变量只有在它内部才是好的,所以当它终止时,它们就消失了。
至于你的具体台词“工作”和“不工作”。"export v10=“”Hi“确实可以工作,但是没有标准的'export‘命令显示,正如所解释的那样,一旦子进程完成并控制返回到sqlplus,变量v10就不再存在了。"echo $v10”也能工作,但是因为它是一个新的$v10进程,所以它对$v10没有价值,所以没有什么可回波的。
您试图通过在sqlplus中设置环境变量来完成什么任务?
发布于 2016-05-17 20:30:46
找到了,我要做的就是
<< EOF
whenever sqlerror exit failure rollback whenever oserror exit failure rollback @scriptname.sql EXIT EOFhttps://stackoverflow.com/questions/37233709
复制相似问题