I am using the code below modified from a post I saw here regarding having the script write out future dates. The problem is that instead of making 8/1 it makes 7/32! Please help!
yy=`date +%Y`
mm=`date +%m`
dd=`date +%d`
echo "Today is : $yy $mm $dd"
#!/usr/bin/ksh
date '+%m %d %Y' |
{
read m d Y
d=`expr "$d" + 1`
case "$d" in
0)
m=`expr "$m" + 1`
case "$m" in
0)
m=12
Y=`expr "$Y" + 1`
;;
esac
d=`cal $m $Y | grep . | fmt +1 | tail +1`
esac
echo "Tomorrow is : $m $d $Y"
d=`expr "$d" + 1`
case "$d" in
0)
M=`expr "$m" + 1`
case "$m" in
0)
m=12
Y=`expr "$Y" + 1`
;;
esac
d=`cal $m $Y | grep . | fmt +1 | tail +1`
esac
echo "The day after tomorrow is : $Y$m$d"
d=`expr "$d" + 1`
case "$d" in
0)
M=`expr "$m" + 1`
case "$m" in
0)
m=12
Y=`expr "$Y" + 1`
;;
esac
d=`cal $m $Y | grep . | fmt +1 | tail +1`
esac
echo "Two days from today is : $Y$m$d"
}
exit
Btw. I get a syntax error with "fmt -1" .
What Operating System and Shell are you using?
There may be better ways to do this depending on what Operating System and Shell you have.
As it stands the script is repairable by changing the logic to suite future dates.
The script contains a method for finding the last day of the month from the output of unix "cal". You'd need to determine whether the day in question is the last day of this month before deciding how to increment day month and year.
Ok. How exactly would I do that? I am using a C shell. Is there a way to read tomorrows date or have it print on the screen with perhaps the cal function? I could possibly use the cut command print the day. If not, how would I "change the logic to suite future dates?"
---------- Post updated at 07:44 AM ---------- Previous update was at 07:42 AM ----------
I am actually running a program that runs out 60 hours so I would need to be able to write the dates for as long as 2 days after tomorrow.
---------- Post updated at 08:34 AM ---------- Previous update was at 07:44 AM ----------
Would it be possible to use the +1 with a -j command to get the number of the day of year then convert the modified julian date back into the standard date?
---------- Post updated at 09:21 AM ---------- Previous update was at 08:34 AM ----------
Ok I found a pretty simple way to do it but I still need to have the month written numerically. How could I do it in conjuction with this command?
date -d "+2 day"
---------- Post updated at 09:30 AM ---------- Previous update was at 09:21 AM ----------
I'm sure that in your next post you will mention what Operating System you have and what Shell you are using.
The script posted in post #1 was clearly not "C shell".
The extended "date" functions are not available in standard unix, so we guess that you are running some sort of Linux.
---------- Post updated at 12:01 PM ---------- Previous update was at 11:56 AM ----------
My script worked for the date. the kshell script was partially borrowed script from an earlier project which I have had to modify. The line
#!/usr/bin/ksh
is a dead line. In any case, I have a running Cronjob twice daily. I want to add a line to the script that searches for a file. If the file does not exist, I need to kill the job and run it again in one hour. I am running the program and 2 am and 2pm. I would want the job to run again at 3am and 3pm respectively. How could I do this and still keep the cronjob running twice daily if I killed it once?