Ошибка запуска скрипта:? #! / Bin / csh: нет такого файла или каталога

Я пытаюсь запустить следующий скрипт, который запустит симуляцию с помощью программы симуляции климата:

#!/bin/csh  
 # run-script generated by Most Tue Jul 23 13:10:46 2013
set EXP=MOST # Name your experiment here  
unset noclobber
if ($1 != "") cd $1  
 # rm -f plasim_restart
cp MOST_REST.010 plasim_restart  
rm -f Abort_Message  
set YEAR = 10  
set YEARS = 50  
while ($YEAR < $YEARS)  
set YEAR = `expr $YEAR + 1`  
set DATANAME=`printf '%s.%03d' $EXP $YEAR`  
set DIAGNAME=`printf '%s_DIAG.%03d' $EXP $YEAR`  
set RESTNAME=`printf '%s_REST.%03d' $EXP $YEAR`  
./most_plasim_t42_l10_p1.x >${DIAGNAME}  
if (-e Abort_Message) exit 1  
if (-e puma_output) mv puma_output $DATANAME  
if (-e puma_diag ) mv puma_diag $DIAGNAME  
cp plasim_status plasim_restart  
mv plasim_status $RESTNAME  
end 

Когда я пытаюсь ее запустить, я получаю следующее сообщение об ошибке:

[ 111]

Я озадачен этим сообщением об ошибке, потому что у меня фактически есть bin / csh. Я не знаю, где проблема.

0
задан 18 April 2014 в 16:06

2 ответа

Вы получаете эти ошибки, потому что у вас не установлен csh интерпретатор оболочки. csh является оболочкой с C-подобным синтаксисом. Чтобы установить его, выполните следующую команду в терминале :

sudo apt-get purge csh

В остальном скрипт выглядит нормально.

0
ответ дан 18 April 2014 в 16:06

Скорее всего, у вас есть один или несколько непечатаемых символов в начале скрипта, которые невидимы, когда вы смотрите на скрипт в редакторе (или через 'cat'), но не позволяете вызвать правильный интерпретатор csh. , Остальные ошибки, вероятно, связаны только с тем, что система возвращается к оболочке по умолчанию (bash), в которой синтаксис, такой как

if ($1 != "") cd $1

, неверен и исчезнет, ​​как только вы исправите строку shebang, так что предполагаемая оболочка будет вызывается.

Я не уверен, что лучший способ удалить непечатаемые символы - вы можете попробовать что-то вроде

sed -i '1 s/^[^#]*//' most_plasim_run

, которое удалит что-либо до первого # символа в строке 1 сценарий - или вы можете открыть новый пустой файл и вставить «чистую» строку Шебанга

#!/bin/csh

, а затем скопировать и вставить оставшуюся часть сценария и повторно сохранить его.

0
ответ дан 18 April 2014 в 16:06

Другие вопросы по тегам:

Похожие вопросы: