Wie konvertiere ich das Datumsformat für zwei Datums- und Uhrzeitangaben in Bash?

Ich muss die Datumszeit von @ konvertier"Apr 10 16 07:03:04" format to"\[10\/12\/16 07:03:04 BST]" Format. Ich benutze die folgende Funktion.

convert_date () {
local months=( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
local i
for (( i=0; i<11; i++ )); do
    [[ $1 = ${months[$i]} ]] && [[ $5 = ${months[$i]} ]] && break
done
printf "\[%2d\/%02d\/%02d $4 BST]\n" $2 $(( i+1 )) $3
printf "\[%2d\/%02d\/%02d $8 BST]\n" $6 $(( i+1 )) $7    
}

d=$( convert_date $1 $2 $3 $4 )
e=$( convert_date $5 $6 $7 $8 )
echo $d
echo $e

Wo meine Eingabe sein wird

./date.sh Apr 10 16 07:03:04 May 12 16 08:11:09

und meine Ausgabe sollte @ se

\[10\/12\/16 07:03:04 BST]
\[12\/12\/16 08:11:09 BST]

Aber ich erhalte die folgende Ausgabe wie:

\[10\/12\/16 07:03:04 BST] \[12\/00\/00 BST]
\[12\/12\/16 08:11:09 BST] \[12\/00\/00 BST]

Wie erhalte ich die genaue Ausgabe? Bitte um Hilfe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage