help with script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting help with script
# 1  
Old 02-03-2003
Question Date formatting

shell: sh
system: SCO unix 5.05 (openserver)

I have a script that tests the date then downloads a specific file based on the date via ftp.

My problem is that 0's in the date get dropped. ie january 01 would become 1

Date code came from: http://unix.about.com/library/weekly/aa070901a.htm

Part of my script

Code:
month=`date +%m`
day=`date +%d`
year=`date +%Y`
month=`expr $month + 0`
day=`expr $day - 1`
if [ $day -eq 0 ]; then
  month=`expr $month - 1`
  if [ $month -eq 0 ]; then
    month=12
    day=31
    year=`expr $year - 1`
  else
    case $month in
     1|3|5|7|8|10|12) day=31;;
      4|6|9|11) day=30;;
      2)
        if [ `expr $year % 4` -eq 0 ]; then
          if [ `expr $year % 400` -eq 0 ]; then
            day=29
          elif [ `expr $year % 100` -eq 0 ]; then
            day=28
          else
            day=29
          fi
        else
          day=28
        fi
      ;;
      ;;
   esac
  fi
fi

Ftp stuff goes here

To download the file i need January to = 01 and not 1. I can make 18 if statements to change 1-9 for $day and $month to place a 0 in front of them, but there has got to be a better way.

Can anyone help with this?

Thank you

Last edited by whegra; 02-03-2003 at 02:43 PM..
# 2  
Old 02-03-2003
Numeric date formatting

Subject lines like "Help with script" aren't very helpful to others who may want a similar solution. Something like "Number formatting" or "Date formatting" would land others nearer the mark.

A few solutions come to mind:

if [ `expr $month : '.*'` -lt 2 ] ; then month=0$month; fi
Most folks overlook the RE capability of expr.

This is a bit simpler, and it takes advantage of the idea that $month is both string and number.
if [ $month -lt 10 ] ; then month=0$month; fi

If your system has a printf command, this is even simpler (though it does make a new process that the previous solution didn't):
month=`printf '%02d' $month`
# 3  
Old 02-03-2003
Thanks for the help, I'll make my topics more descriptive in the future.
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question