0

単一のスクリプトで以下の手順を実行するための1つのスクリプトを作成しようとしています。

例:

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個です。すべてのユーザー名を含む1つの入力ファイルを提供しようとしています。誰かが私を導くことができますか?このコマンド内でユーザー名を割り当て、データベースにログインした後に実行する方法。

4

1 に答える 1

2

I don't have a way to test this, but the common solution is to use shell "here-docs" to attach the std-in to call to isql. Something like the following:

#!/bin/bash

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

Note the '-' in the <<-EOS. This is a feature that allows you to indent the here-doc, and allow the closing EOS to be indented too. The EOS must be indented with tab chars. If you can't work with tab chars, remove the '-' AND make sure you EOS are the first chars on a separate line (no trailing white space! ;-)

Also, EOS can be any text, I use EOS for End of Script.

これが役立つことを願っています。

于 2012-05-30T10:35:29.183 に答える