проблема с использованием символов подстановки в случае заявления в Unix? - PullRequest
0 голосов
/ 31 августа 2009
in localpath i have files with names 
myfile1_20090821.dat
myfile2_20090831.dat
myfile3_20090811.dat
myfile4_20090822.dat
myfile5_20090825.dat
type="OP"
module="abc"
if [ $type == 'OP' ]; then
case $module in
abc) x=1
     while [ $x -le 5 ]
     do
     INPUT_FILE[$x]=`ls localpath/myfile$x*.dat`
     x=$(( $x + 1 ))
     done;;
*) echo "not.......";;
esac
fi

ошибка выдачи: ls localpath / myfile $ 1 * .dat не найден

PLZ, помогите мне

Ответы [ 2 ]

1 голос
/ 31 августа 2009

Базовый скрипт выглядит корректно, но будет работать, только если вы запустите его из родительского каталога «localpath»

т.е. если вы делаете 'ls' из каталога, в котором вы запускаете скрипт, вы должны увидеть каталог localpath в списке.

Попробуйте полностью указать каталог.

0 голосов
/ 31 августа 2009

Моя версия вашей программы:

#!/usr/bin/bash

type="OP"
module="abc"
if [ $type == 'OP' ]; then
case $module in
abc) x=1
     while [ $x -le 5 ]
     do
     INPUT_FILE[$x]=`ls localpath/myfile$x*.dat`
     x=$(( $x + 1 ))
     done;;
*) echo "not.......";;
esac
fi

Не выдает сообщений об ошибках. Есть ли в вашей версии линия Шебанга?

На самом деле, мой работает и без Шебанга. Я использую Cygwin.

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