スクリプトを書き直します。
#!/bin/bash
# @echo;
# set nls_lang=russian_cis.ru8pc866
export NLS_LANG=russian_cis.ru8pc866
# not needed @echo off
# SET NLS_NUMERIC_CHARACTERS=. '
export NLS_NUMERIC_CHARACTERS='.'
PATH="/path/to/sqlDir/install:${PATH}"
# sqlldr.exe userid=PRB/0611@TSESTDB control=control_file.ctl LOG=fdb_log.log errors=100
sqlldr userid=PRB/0611@TSESTDB control=control_file.ctl LOG=fdb_log.log errors=100
# ? cmd
あなたのコードは残しましたが、コメントアウトしました (シェル コメント文字 '#' を使用)。コメント解除された行は、.bat 構文を Linux/Unix bash/shell 構文に「変換」したものです。
上記のいくつかの修正が必要な場合があります。
PATH のリセットに正しい値を含める必要があります。そこにある値は厳密に問題を説明するためのものであることに注意してください。
export
現在のシェル (シェル スクリプト) で設定された変数が、シェル スクリプトから実行される子プロセスから見えるようにするために使用されます。この場合、重要なものはsqlldr
本当に必要な値が に割り当てられているかわかりません
NLS_NUMERIC_CHARACTERS
。シェルで使用できる単一引用符で引用すると、'
意図したとおりの値が使用されることに注意してください。「*」またはその他の正規表現文字を使用すると、問題が発生する可能性があります。
sqlldr.exe
まったく別の名前であることがわかります。.exe
実行可能コマンドの linux/unix 規則では拡張子は必要ないため、
sqlldr
. インストールされたディレクトリにあるプログラムの完全な名前を使用してください。
の行は#!/bin/bash
、先頭にスペースを入れずに、ファイルの最初の行にする必要があります。
また、スクリプトが実行可能であることを OS に通知する必要があります。bash コマンドラインから、このスクリプトを含むディレクトリで、
chmod 755 mySQLLDR_runningScript
cmd
最後に、 .bat ファイルの最後に新しいウィンドウを開く理由がわかりませんか? それを行うための正しいコマンドを見つけるには、システムで実験する必要があります。たぶんxterm
。
これが役立つことを願っています。