- 論壇徽章:
- 0
|
本帖最后由 ghostsaint 于 2010-03-01 17:33 編輯
Hi 大家好.
需哦現(xiàn)在使用backtick ` 來執(zhí)行帶參數(shù)的外部sh文件
calldb.sh- #!/bin/sh
- sqlplus $1/$2<<END
- execute $3('$4');
- Commit;
- exit;
- END
- exit 0
復(fù)制代碼 在shell中手動(dòng)加參數(shù)運(yùn)行, 一切正常;
但是通過cron, 先運(yùn)行一個(gè)sh, cd到perl程序的目錄, 然后執(zhí)行perl程序:- my $call = "./calldb.sh $dbUser $dbPwd $dbSpName ";
- if ($fileName =~ m/PART/i) {
- $call .= "P";
- } elsif ($fileName =~ m/ASSET/i) {
- $call .= "A";
- }
- undef $!;$result = `$call`;
- appLog("DB call returned: $result");
- if ($?) {
- confess("DB Call Error Code: $?, Output: $result");
- }
復(fù)制代碼 就會(huì)出現(xiàn)錯(cuò)誤, 并且$result為空:
DB Call Error Code: -1, Output: at app.pl line 435....
怎樣才能保證出錯(cuò)的情況下, 能夠同時(shí)獲得sh的已有輸出(到perl變量$result以供分析)及有價(jià)值的錯(cuò)誤原因? 謝謝 |
|