我正在尝试编写一个脚本以在单个脚本中执行以下步骤。
例子:
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/