linux - 如何使用unix在数据库中登录和执行命令?

标签 linux perl unit-testing shell unix

我正在尝试编写一个脚本以在单个脚本中执行以下步骤。

例子:

bash-3.00$ isql -Ufw -Pframesa -Dcsmain -w2000    
1> select * from UserLogin where UserName ='EPRTUBD'    
2> go    
 UserName             Password                                                                                                                                                                                                                                                        ExpiryDate                 ProfileID   CCRefillSum              LastCCRefillDate           RBRefillSum              LastRBRefillDate           DBRefillSum              LastDBRefillDate           LockStatus FailedLoginCount
 -------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------- ----------- ------------------------ -------------------------- ------------------------ -------------------------- ------------------------ -------------------------- ---------- ----------------
 EPRTUBD              $1$HN1DOjM6$R9.niqQzUQ/2H4663nRoQ/                                                                                                                                                                                                                                     Jun 25 2012  8:04AM         147                     NULL                       NULL                     NULL                       NULL                     NULL                       NULL N                         0

(1 row affected)
1> exit

bash-3.00$

用户名可以是n个数字。我正在尝试提供一个包含所有用户名的输入文件。任何人都可以指导我吗?如何在此命令中分配用户名并在登录数据库后执行?

最佳答案

我没有办法对此进行测试,但常见的解决方案是使用 shell“here-docs”附加 std-in 以调用 isql。类似于以下内容:

#!/bin/bash

isql -Ufw -Pframesa -Dcsmain -w2000 <<-EOS   
    select * from UserLogin where UserName ='EPRTUBD'    
    go
EOS

注意 <<-EOS 中的“-” .这是一项允许您缩进 here-doc 的功能,并允许缩进结尾的 EOS。 EOS 必须使用制表符缩进。如果您不能使用制表符,请删除“-”并确保您的 EOS 是单独一行中的第一个字符(没有尾随空格!;-)

此外,EOS 可以是任何文本,我使用 EOS 作为脚本结束。

希望对您有所帮助。

关于linux - 如何使用unix在数据库中登录和执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810738/

相关文章:

regex - awk 正则表达式

python - 如何杀死超过 Linux 中 CPU 使用率和运行时限制的特定进程?

perl - 在 Curl 中向 Stripe 客户添加额外的卡?

perl - 更新命令行输出

c# - 单元测试未显示为覆盖方法

php - 如何使用 PHPUnit 测试确切的异常消息,而不是子字符串?

unit-testing - angular2中的单元测试,依赖注入(inject)

python - 两个 Python 程序之间的进程间消息传递

linux - Jenkins 拒绝连接 8080 端口

apache - 为什么 Dancer 应用在​​ uWSGI + Apache 下失败?