Shell 将数据写入文件

Shell 将数据写入文件,shell,unix,Shell,Unix,我正在尝试将数据写入文件。这是剧本。这很容易,也不正确。但是请帮我得到输出 #!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 # Signifi

我正在尝试将数据写入文件。这是剧本。这很容易,也不正确。但是请帮我得到输出

#!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

很难预测你想要完成什么。也许:

#!/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的变量,然后想知道为什么您开始看到“command not found”错误


我完全同意“使用%Y-%m-%d”的意见

请修改格式。看来你的问题文本被夹在脚本的中间。请注意格式,阅读格式不好的问题确实很难。您似乎没有在任何地方设置$DATE。此外,您没有一个结尾}来匹配“if”语句前一行的开头。+1用于在问题中而不是在注释中更改代码。。。。。虽然
exit(0)
不会爆炸,但您只需要
exit
exit 0
。此外,我还没有看到您使用过所有
file1=$1
变量,您打算用
cat/MYDIR/$echo
做什么?A.不要使用cmd名称作为变量,b。我看不出您已经设置了变量
echo
。最后,用
%m-%d-%Y
命名文件,使用
%Y-%m-%d
命名文件,文件将自动按时间顺序组织起来,这是对自己的攻击(从长远来看)!祝你好运使用
exit
语句,您想要实现什么?你真的想在第一次迭代后退出吗?(除了你应该摆脱帕伦夫妇这一事实)