Проблема при запуске сценария оболочки UNIX из параллельной программы Oracle - PullRequest
4 голосов
/ 23 ноября 2010

Я пытаюсь запустить сценарий HOST, который я встроил в оболочку KSH, с помощью программы Oracle Concurrent.

Мой сценарий тестирования выглядит следующим образом:

echo "System Parameters passed by Concurrent Manager"
echo "+--------------------------------------------+"
XXWIN_PROGRAM=$0
XXWIN_LOGIN=$1
XXWIN_USERID=$2
XXWIN_USERNAME=$3
XXWIN_REQUEST_ID=$4
echo "XXWIN_PROGRAM    :"$XXWIN_PROGRAM
echo "XXWIN_LOGIN      :"$XXWIN_LOGIN
echo "XXWIN_USERID     :"$XXWIN_USERID
echo "XXWIN_USERNAME   :"$XXWIN_USERNAME
echo "XXWIN_REQUEST_ID :"$XXWIN_REQUEST_ID

shift 4
echo ""
echo "User Parameters passed by Concurrent Manager"
echo "+------------------------------------------+"
echo "1  :"$1
echo "2  :"$2
echo "3  :"$3
echo "4  :"$4
echo "5  :"$5
echo "6  :"$6
echo "7  :"$7
echo "8  :"$8
echo "9  :"$9
echo ""

# Generic Script Begins
# Declaring Constants, Data File Path, Control File Path etc 

CTL_FILE_NAME=$1     # Control File Name(s)
CTL_FILE_PATH=$2     # Control File Path
DATA_FILE_NAME=$3    # Data File Name(s)
DATA_FILE_PATH=$4    # Data File Path
COMPONENT_NAME=$5    # Interface Component Name
SEQ_VALIDATION=$6    # Sequence Name
SUPPORT_EMAIL= $7    # Support e-mail(s) List

# Printing the User Parameters
echo "1  :"$CTL_FILE_NAME
echo "2  :"$CTL_FILE_PATH
echo "3  :"$DATA_FILE_NAME
echo "4  :"$DATA_FILE_PATH
echo "5  :"$COMPONENT_NAME
echo "6  :"$SEQ_VALIDATION
echo "7  :"$SUPPORT_EMAIL

# Assigning the Archive, IN and Prog Dir Paths
ARCHIVE_DIR="$XXWIN_TOP/bin/TEMP/archive"
XXWIN_IN_DIR="$XXWIN_TOP/bin/TEMP/in"
XXWIN_PROG_DIR="$XXWIN_TOP"

# Printing the directories
echo "Archive Directory :" $ARCHIVE_DIR
echo "IN Directory :" $XXWIN_IN_DIR
echo "Program Directory :" $XXWIN_PROG_DIR

i=10
k=5
j=`expr $i + $k`
echo $j

echo $i 

echo "Out of Concurrent Program"

Имя программы сценария оболочкиоканчивается на ".prog"

Я выполняю параллельный запрос со следующими параметрами: alt text

Программа завершается нормально, но я получаю следующие сообщения журнала.alt text

alt text

Если я использую #!/usr/bin/ksh, программа завершается с ошибкой, поэтому я запускаю файл хоста без этого.Из журнала ясно, что когда в скрипте встречается пробел, выдается ошибка «Команда не найдена».Также, как вы можете видеть, я делаю простое дополнение, даже это также не распознается.

Любая помощь в этом отношении очень ценится.

Спасибо:)

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

Вы случайно использовали редактор в системе Windows для создания сценария? Он ставит символ возврата каретки + перевода строки в конце каждой строки, а не формат Unix - просто перевод строки. Это портит выполнение скрипта. Системы Unix обычно имеют команду типа "dos2unix" для преобразования файла.

Если это не так, я бы попробовал запустить скрипт вручную из командной строки, чтобы убедиться, что он работает.

0 голосов
/ 23 ноября 2014

Когда VI или CAT отображают специальные символы, преобразование в совместимость с Linux / Unix не полностью выполнено.Там часто много решений, может быть, Notepad ++ является причиной здесь.Возможно, нет.Написание сценариев на самой ОС не только быстрее (нет необходимости в FTP, что уже является большим плюсом), но вам не нужно сталкиваться с этими раздражающими символами control-M.Преобразование ASCII иногда не удается.Вы также можете попробовать другую программу FTP.Или избегайте всего этого вместе, как упомянуто выше.

0 голосов
/ 24 ноября 2010

Когда я попытался прочитать файл, используя CAT -vt <filename>, я увидел, что файл содержит специальные символы, такие как ^ M и ^ I. Это может быть из-за режима передачи файлов (но я перенес в режиме ASCII, все еще специальные символы, где появляются).

Я открыл редактор VI и вставил тот же скрипт. Сохраните файл, попытайтесь запустить скрипт, он работал нормально.

Я так и не понял, как появились специальные символы. В качестве редактора я использовал notepad ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...