编写了一个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] 删除。
我来说两句