我正在尝试编写一个脚本以在单个脚本中执行下面的步骤。
示例:
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号。我想提供一个包含所有用户名的输入文件。任何人都可以指导我吗?如何在此命令中分配用户名并在登录数据库后执行。?
答案 0 :(得分:1)
我没有办法测试这个,但常见的解决方案是使用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 必须缩进标签字符。如果你不能使用tab chars,删除' - '并确保EOS是单独行上的第一个字符(没有尾随空格!; - )
此外,EOS可以是任何文本,我使用EOS作为脚本结束。
我希望这会有所帮助。