こんにちは私は、データベース内の.ctlファイルからデータをロードする小さなシェルスクリプトを作成していますが、スクリプトを実行した後に出力を表示しないでください。これが正しいかどうかを確認する:シェルでシェルスクリプトでsqlldrを実行するには
#!/bin/ksh
Y=`sqlldr usr/[email protected] control = /work/ctlm/SCRIPTS/upload.ctl`
echo $Y > sqlldr_1
rm -rf sqlldr_1
こんにちは私は、データベース内の.ctlファイルからデータをロードする小さなシェルスクリプトを作成していますが、スクリプトを実行した後に出力を表示しないでください。これが正しいかどうかを確認する:シェルでシェルスクリプトでsqlldrを実行するには
#!/bin/ksh
Y=`sqlldr usr/[email protected] control = /work/ctlm/SCRIPTS/upload.ctl`
echo $Y > sqlldr_1
rm -rf sqlldr_1
をスペースは、引数を区切る=
の周りにそれらを除去するために使用されます。 また、変数$ Yを引用符で囲んで書式(スペース、改行)を保持します。
#!/bin/ksh
Y=`sqlldr usr/[email protected] control=/work/ctlm/SCRIPTS/upload.ctl`
echo "$Y" > sqlldr_1
rm -rf sqlldr_1
あなたは2つのファイルをout.log作成し、
をerr.logに出力sqlldr usr/[email protected] control=/work/ctlm/SCRIPTS/upload.ctl >/dev/null 2>&1
を削除するには、例えば、リダイレクト
を使用し、画面に何も出力したくない場合
sqlldr usr/[email protected] control=/work/ctlm/SCRIPTS/upload.ctl >out.log 2>err.log
FD 1 >out.log
が1>out.log
と同じで、暗黙的です個のスペースが>
とファイル名、 の間に追加することができますが、ファイルディスクリプタと>
の間にスペースがあってはならない理由を直接リダイレクトしない、出力を変数に渡すためにどのような理由があります。なぜファイルに書き込んだ後にそれを削除するのですか? –
スクリプト実行後にsqlldrの出力を画面に表示したくない場合、どうすればよいですか? – User123
画面に2つの出力ストリームstdoutとstderrがあります。出力しない場合はリダイレクトを使います。私の答えの例 –