2017-01-26 2 views
1

Я пытаюсь выполнить каждый скрипт, который имеет «~ SAC» в конце своих имен файлов. Для этой цели я написал сценарий tc shell, используя «foreach», как приведенный ниже код.Ошибка «неопределенной переменной» при запуске скрипта tcsh

Однако, когда я выполняю его, набрав ./run.tcsh, он показывает только, что «tmpdir: Неопределенная переменная». ('tmpdir' - это каталог, в котором есть все файлы, которые я хочу применить к моему коду) Как я могу решить эту проблему?

#!/bin/tcsh 

set inputdir=tmpdir 
foreach sacfile(`find $tmpdir -name '*.SAC'`) 
    echo "processing $sacfile" 
    classic_LR $sacfile 
end 

Имя моего исполняемого файла - «classic_LR» и выполняется следующей формой ввода;

./classic_LR sacfile 

где «sacfile» относится к имени файла, который я хочу применить classic_LR.

ответ

2

Ваша переменная inputdir, а не tmpdir.

Таким образом, измените

foreach sacfile(`find $tmpdir -name '*.SAC'`) 

в

foreach sacfile(`find $inputdir -name '*.SAC'`) 
+0

Я проверил, что сообщение "Undefined ~" не появляется после его редактирования. Однако он просто возвращает сообщение «Использование: classic_LR filename.sac output.txt». Я что-то упускаю? Как мне изменить код, чтобы он выполнялся? Должен ли я добавить txt-файл для вывода вывода в моем коде? –

+0

Это похоже на другую проблему - нечто специфичное для вашего кода на языке C. – codeforester

+0

Хорошо. Я сам это проверю. –

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