2012-04-09 2 views
1

У меня вопрос о том, что я думаю, это оператор или прохожий, но Google ничего не обнаружил. Сценарий этого содержится в этоshell> & operator?

#!/bin/sh 
ln mopac.in FOR005 
mopac >& FOR006 
mv FOR006 mopac.out 

Когда я называю «MOPAC mopac.in», программа работает нормально, но для моих нужд, MOPAC называется в другой программе, используя этот скрипт, но похоже, входной файл не проходит, поэтому mopac не работает. Я не понимаю, что должно делать «> &». У меня проблемы с устранением неполадок.

Спасибо.

ответ

2

>& FILE является устаревшим bash (от csh) сокращения для > FILE 2>&1, то есть, перенаправить стандартный вывод как и стандартную ошибку. (Если /bin/sh не bash, как верно для ряда дистрибутивов Linux, это вызовет ошибку.) Старое bash (до 3.0) предпочитает эту форму, поэтому большинство новых bash все еще это понимают, хотя, возможно, совсем недавно bash наконец-то удалили так как они, похоже, наконец-то удаляют устаревшие конструкции в последнее время.

Ваш скрипт там не проходит mopac.in на всех, но, как представляется, при условии, что mopac будет читать входные данные из FOR005, поэтому использует ln, чтобы сделать его доступным там. Возможно, вы должны изменить сценарий, чтобы читать mopac.in в качестве параметра, точно так же, как вы его запускаете напрямую.

+0

Ааа, что, казалось, сделать трюк. Большое спасибо! – bbxiao1

Смежные вопросы