Bash脚本未创建文件

用户名

编写了一个Bash脚本来创建两个文件,每个文件都有一个日期列表,以备后用。该脚本需要三个参数:数据主题,最小日期和最大日期。这是我的脚本:

    #!/bin/sh
        dataSubj=$1
        minDate=$2
        maxDate=$3

        echo -e "my variables:\nsubject:\t$dataSubj\nstart:\t$minDate\nend:\t$maxDate"
       //Wrote the above line for debugging

        configDir=/opt/site1/ETL/MFGEDW/config/MERS2
        dateCount=1
        addTime=00:00:00
        fromDates=$dataSubj_fromDates.txt
        toDates=$dataSubj_toDates.txt

        cd $configDir

        echo "Creating fromDates file and adding $minDate"
        echo -e "$minDate $addTime" > ./$fromDates

        echo "Creating toDates file"
        >./$toDates

        while [[ $minDate < $maxDate ]]
            do
                minDate=$(date -d "$minDate 7 days" +%Y-%m-%d)
                ((dateCount++))
                if [[ $minDate < $maxDate ]]; then
                    echo "Adding $minDate to fromDates file"
                    echo -e "$minDate $addTime," >> ./$fromDates
                fi

                echo "Adding $minDate to toDates file"      
                echo -e "$minDate $addTime," >> ./$toDates  

                echo "$dateCount dates total"   
        done

        exit $dateCount

我的问题是,我有一个隐藏的文件,而不是拥有两个带有所需日期的文件,而所有日期都应该写在这两个文件中。我对脚本还很陌生,但是以我曾经使用过并且知道其工作原理的其他脚本为模型进行了建模。是否有我丢失或不必要添加的内容?提前致谢。

卡巴努斯

这是你的问题:

fromDates=$dataSubj_fromDates.txt
toDates=$dataSubj_toDates.txt

Bash不知道您的意思dataSubj是变量的名称。您正在尝试使用两个不同的变量:

dataSubj_fromDates
dataSubj_toDates

可以肯定的是不存在。笔记 '。' 是变量命名的停止器。尝试使用:

fromDates=${dataSubj}_fromDates.txt
toDates=${dataSubj}_toDates.txt

下次在调试时打印所有变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章