Вот шаги, которые я выполнил .... 1) Создал сценарий оболочки /fbrms01/dev/projects/Err_check.sh со следующим кодом в нем ....

Y=`date +'%Y'`
  M=`date +'%m'`
  D=`date +'%d'`
  today=$Y.$M.$D
  echo $today
  ls -l /fbrms01/dev/projects/tadis003/*_"$today"*.log | xargs grep "ERROR:" >         /fbrms01/dev/projects/tadis003/log_error.dat

2) Запустил сценарий оболочки в UNIX, и он отлично работал и создал файл .dat именно с тем, что мне нужно.

$sh Err_check.sh

3) Запустите этот сценарий оболочки на SAS с помощью команды X ... Пробовал оба

X '/fbrms01/dev/projects/tadis003/sh Err_check.sh';
  X 'sh Err_check.sh';

Но он не создает файл .dat .... Есть идеи, где я делаю ошибку .... Спасибо, Сэм.

0
SAS_learner 3 Апр 2013 в 00:39
Вы уверены, что у вас есть опция XCMD, а не NOXCMD, установленная вашим системным администратором? Кроме того, вы можете принять во внимание, что SAS, выполняющий сценарий оболочки, предположительно будет находиться в другой среде и с другим пользователем, чем вы выполняете тот же сценарий оболочки.
 – 
Joe
3 Апр 2013 в 01:05
Привет, Джо, я раньше использовал команду X, и она работала ... Означает ли это, что параметр XCMD был установлен обрядом? И UNIX, и SAS вошли в систему под одним и тем же пользователем.
 – 
SAS_learner
3 Апр 2013 в 17:01
Предположительно. Вы уверены, что SAS выполняет x команд от имени этого пользователя? Это похоже на одну из наиболее вероятных проблем. У вас также могут возникнуть проблемы с цитированием, но запуск сценария оболочки, как вы, должен избежать этой проблемы.
 – 
Joe
3 Апр 2013 в 17:43

1 ответ

Лучший ответ
/*STEP1:Created a .sh file with following code on unix 
    Y=`date +'%Y'`
    M=`date +'%m'`
    D=`date +'%d'`
    today=$Y.$M.$D
    ls -1 /fbrms01/dev/Logs/JB_*_"$today"_*.log | xargs grep -l "ERROR:" >> /fbrms01/dev/projects/tadis003/log_error.dat*/

/*STEP2:Run the shell script using X command*/
X 'sh /fbrms01/dev/projects/tadis003/log_error.sh';
1
SAS_learner 8 Апр 2013 в 23:46