0

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

例子:

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 个数字。我正在尝试提供一个包含所有用户名的输入文件。有人可以指导我吗?如何在此命令中分配用户名并在登录数据库后执行。?

4

1 回答 1

2

我没有办法对此进行测试,但常见的解决方案是使用 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 作为脚本结束。

我希望这有帮助。

于 2012-05-30T10:35:29.183 回答