2013-12-14 3 views
1

Я пытаюсь записать данные в файл. Это сценарий. Его легко и неправильно. Но Pls помогает мне получить результат.Запись данных в файл

#!bin/ksh 
DATE=date +'%m/%d/%Y'_$CNTR_SEQ 
file1=$1 # Signifies DATE config file 
file2=$2 # Signifies MONT config file 
file3=$3 # Signifies YEAR config file 
file4=$4 # Signifies SEQN config file 
file5=$5 # Signifies FILETYPE config 
file6=$6 # Signifies CNTR1 config file 
file7=$7 # Signifies CNTR2 config file 


for CNTR_DATE in {0..100}; do 
    for CNTR_SEQ in {1..4}; do 
     NEXT_DATE=$(date +%m-%d-%Y_$CNTR_SEQ -d "$DATE + $CNTR_DATE day") 
     echo $NEXT_DATE 
     if [ -f $5=TST ]; then 
      printf "$3-$2-$1|$4|\n0000000|0\n00000" > echo TST_$NEXT_DATE.dat 
      # This is the content of file.This should be the file creation with 
      # that date's name pattern.The contents of file is been written into 
      # a specific name pattern. Is this correct? 
     fi 
     cat /MYDIR/$echo 
     # A file is creating in the MYDIR /FILE_NAME path. 
     exit(0) 
    done 
done 
+0

Исправьте форматирование. Похоже, что ваш текст вопроса попал в середину вашего сценария. Пожалуйста, обратите внимание на форматирование, действительно трудно прочитать плохо отформатированные вопросы. – janos

+0

Кажется, вы нигде не задали $ DATE. –

+0

Кроме того, у вас нет закрытия}, чтобы соответствовать первому в строке перед оператором if. –

ответ

0

Трудно угадать то, что вы пытаетесь достичь. Возможно:

#!/bin/ksh 
for days in {0..100}; do 
    future_date=$(date -d "+$days days" +%m-%d-%Y) 
    for seq in {1..4}; do 
     file="/mydir/TST_${future_date}_${seq}.dat" 
     if [ $5 = "TST" ]; then 
      printf "$3-$2-$1|$4|\n0000000|0\n00000" > "$file" 
     fi 
    done 
done 

Избегайте использования всех имен переменных верхнего регистра. Однажды вы будете использовать переменную с именем PATH, а затем задаетесь вопросом, почему вы начинаете видеть ошибки «команда не найдена».

Я полностью согласен с комментарием "использование% Y-% m-% d"

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