2015-01-12 3 views
1

Что-то странное здесь, или я не мог понять сам.Невозможно присвоить значение переменной после подстроки | Unix Shell Scripting

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

  • Хотя во время самого базового имени, это делает совершенным с подстроки (перейти к Debugging Version 2)

Debugging версия 1:

Код:

fname='' 
fdate='' 
for file in /home/fimsctl/datafiles/outbound/timelog/timelog_file_*.csv ; do 

    echo "Debugging Test: 123" 

    fname=` basename $file ` 

    echo "Debugging Test: 456" 

    echo "$fname" 

    echo "Debugging Test: 789" 

    fdate=` $fname | cut -c2-4 ` 

    echo "Debugging Test: abc" 

    echo "$fdate" 

    echo "Debugging Test: def" 

    done 

Выход:

Debugging Test: 123 
Debugging Test: 456 
timelog_file_150112.csv 
Debugging Test: 789 
testb.ksh[119]: timelog_file_150112.csv: not found 
Debugging Test: abc 

Debugging Test: def 

Debugging версия 2:

Код:

fname='' 
fdate='' 
for file in /home/fimsctl/datafiles/outbound/timelog/timelog_file_*.csv ; do 

    echo "Debugging Test: 123" 

    fname=` (basename $file) | cut -c14-19 ` 

    echo "Debugging Test: 456" 

    echo "$fname" 

    echo "Debugging Test: 789" 

    fdate=` $fname | cut -c2-4 ` 

    echo "Debugging Test: abc" 

    echo "$fdate" 

    echo "Debugging Test: def" 

    done 

Выход:

Debugging Test: 123 
Debugging Test: 456 
150112 
Debugging Test: 789 
testb.ksh[119]: 150112: not found 
Debugging Test: abc 

Debugging Test: def 

ответ

2

Эта линия проблема:

fdate=` $fname | cut -c2-4 ` 

Оно должно быть:

fdate=`echo "$fname" | cut -c2-4` 
+1

Мой бедный. Спасибо ... Весь комплект :-) Застрял на этом как последние 40 минут. Huh ... – Sachin

+1

Добро пожаловать, рад, что это помогло. – anubhava

+0

Не могли бы вы мне помочь и в этом. Link => http://stackoverflow.com/questions/27900170/how-to-sort-integer-array-in-ksh-unix-shell-scripting – Sachin

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