Что-то странное здесь, или я не мог понять сам.Невозможно присвоить значение переменной после подстроки | 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
Мой бедный. Спасибо ... Весь комплект :-) Застрял на этом как последние 40 минут. Huh ... – Sachin
Добро пожаловать, рад, что это помогло. – anubhava
Не могли бы вы мне помочь и в этом. Link => http://stackoverflow.com/questions/27900170/how-to-sort-integer-array-in-ksh-unix-shell-scripting – Sachin