2013-02-12 3 views
0

Как я могу создать переменную с именем файла формата, как: шаблон FileName: SnapshotIR__somenumber.csvShell скрипт Variable Структура

Я пытался что-то вроде:

TODAY=$(date +"%m%d%Y")  
SNAPSHOT = $(SnapshotIR$TODAY*.csv) 

Я получаю ошибку, как:

test.sh: line 2: SnapshotIR02122013_2239.csv: command not found 
test.sh: line 2: SNAPSHOT: command not found 

так, когда я хочу использовать с, если

if [ -f SnapshotIR$TODAY*.csv] -> works 
if [ -f ${SNAPSHOT} ]   -> does not work (I get the above error) 
+0

Избавьтесь от пространств вокруг '='. – Barmar

+0

Спасибо за это, но эта помощь поможет с ошибкой. – Swagatika

+0

Это должно исправить ошибку 'SNAPSHOT: command not found'. – Barmar

ответ

0
SNAPSHOT=SnapshotIR${TODAY}\*.csv 

, когда вы даете $ (.....), он говорит shell, чтобы выполнить команду в фигурных скобках. Я думаю, вы просто формируете имя файла.

также удалить пробелы:

SNAPSHOT<space>=<space> 

я также хотел бы добавить подстановочные «*» не будет работать для флага -f.

for file in $SNAPSHOT 
do 
     if [ -f "$file" ] 
     then 
       FOUND="$file" 
       break 
     fi 
done 
+0

Спасибо за быстрый ответ. Я избавился от одной ошибки, но я все равно получаю: test.sh: строка 2: SNAPSHOT: команда не найдена Ожидается ли это? – Swagatika

+0

У меня нет места. Это можно использовать как: если [-f $ {SNAPSHOT}] правильно? – Swagatika

+0

Спасибо, это сработало. – Swagatika

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