2015-01-05 2 views
1

У меня есть функция КШ, которая работает хорошо, как это:<< непревзойденная ошибка от другого пользователя

td_query() { bteq << EOF |grep '^>' |sed -e "s/^>//" 
user/pass 
    DATABASE db; 
    $1 
.LOGOFF; 
.QUIT; 
.EXIT 
EOF 
} 

Но при копировании на другой каталог и запустить его под другим пользователем, я получаю эту ошибку:

-ksh: .: syntax error: `<<' unmatched 

Почему это работает под одним пользователем, а не с другим?

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

+0

Я его к тому же CHMOD, но до сих пор не повезло .. – user2061886

+0

понял это ... файл был закодирован как окна файла во время передачи по какой-то причине ... – user2061886

ответ

1

у вас есть рассеянное пространство в Heredoc перенаправлении:

bteq << -EOF 
     ^^ 

должен быть

bteq <<- EOF 
     ^^ 

дефис принадлежит оператору перенаправление. См the ksh93 man page (или ksh88)

+0

whoops..sorry , сделал ошибку кода, исправил ее вверх ... Я пытался разными способами заставить его работать, но даже это не работает ... – user2061886

+0

Как и у другого пользователя, введите 'set -x', затем выполните функцию. Что ты видишь? –

+0

получите ту же ошибку ... – user2061886