Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/extern/gmp/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 5 kB image not shown  

Quelle  mdate-sh   Sprache: C

 
#!/bin/sh
Get modification time of a file or directory and pretty-print it.

scriptversion=2010-08-21.06; UTC

Copyright (C) 1995-2014 Free Software Foundation, Inc.
written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
java.lang.NullPointerException
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
java.lang.NullPointerException
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
java.lang.NullPointerException
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

As a special exception to the GNU General Public License, if you
distribute this file as part of a program that contains a
configuration script generated by Autoconf, you may include it under
the same distribution terms that you use for the rest of that program.

This file is maintained in Automake, please report
bugs to <bug-automake@gnu.org> or send patches to
<automake-patches@gnu.org>.

if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
  emulate sh
  NULLCMD=:
  Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
  is contrary to our usage.  Disable this feature.
  alias -g '${1+"$@"}'='"$@"'
  setopt NO_GLOB_SUBST
fi

case $1 in
  '')
     echo "$0: No file. Try '$0 --help' for more information." 1>&2
     exit 1;
     ;;
  -h | --h*)
    cat <<\EOF
Usage: mdate-sh [--help] [--version] FILE

Pretty-print the modification day of FILE, in the format:
1 January 1970

Report bugs to <bug-automake@gnu.org>.
EOF
    exit $?
    ;;
  -v | --v*)
    echo "mdate-sh $scriptversion"
    exit $?
    ;;
esac

error ()
{
  echo "$0: $1" >&2
  exit 1
}


Prevent date giving response in another language.
LANG=C
export LANG
LC_ALL=C
export LC_ALL
LC_TIME=C
export LC_TIME

GNU ls changes its time format in response to the TIME_STYLE
variable.  Since we cannot assume 'unset' works, revert this
variable to its documented default.
if test "${TIME_STYLE+set}" = set; then
  TIME_STYLE=posix-long-iso
  export TIME_STYLE
fi

save_arg1=$1

Find out how to get the extended ls output of a file or directory.
if ls -L /dev/null 1>/dev/null 2>&1; then
  ls_command='ls -L -l -d'
else
  ls_command='ls -l -d'
fi
Avoid user/group names that might have spaces, when possible.
if ls -n /dev/null 1>/dev/null 2>&1; then
  ls_command="$ls_command -n"
fi

'ls -l' line looks as follows on OS/2.
#  drwxrwx---        0 Aug 11  2001 foo
This differs from Unix, which adds ownership information.
#  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
java.lang.NullPointerException
To find the date, we split the line on spaces and iterate on words
until we find a month.  This cannot work with files whose owner is a
user named "Jan"or "Feb", etc.  However, it's unlikely that '/'
will be owned by a user whose name is a month.  So we first look at
the extended ls output of the root directory to decide how many
words should be skipped to get the date.

On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
set x`$ls_command /`

Find which argument is the month.
month=
command=
until test $month
do
  test $-gt 0 || error "failed parsing '$ls_command /' output"
  shift
  Add another shift to the command.
  command="$command shift;"
  case $1 in
    Jan) month=January; nummonth=1;;
    Feb) month=February; nummonth=2;;
    Mar) month=March; nummonth=3;;
    Apr) month=April; nummonth=4;;
    May) month=May; nummonth=5;;
    Jun) month=June; nummonth=6;;
    Jul) month=July; nummonth=7;;
    Aug) month=August; nummonth=8;;
    Sep) month=September; nummonth=9;;
    Oct) month=October; nummonth=10;;
    Nov) month=November; nummonth=11;;
    Dec) month=December; nummonth=12;;
  esac
done

test -n "$month" || error "failed parsing '$ls_command /' output"

Get the extended ls output of the file or directory.
set dummy x`eval "$ls_command \"\\\$save_arg1\""`

Remove all preceding arguments
eval $command

Because of the dummy argument above, month is in $2.
java.lang.NullPointerException
On a POSIX system, we should have
java.lang.NullPointerException
$= 5
$1 = file size
$2 = month
$3 = day
$4 = year or time
$5 = filename
java.lang.NullPointerException
On Darwin 7.7.0 and 7.6.0, we have
java.lang.NullPointerException
$= 4
$1 = day
$2 = month
$3 = year or time
$4 = filename

Get the month.
case $2 in
  Jan) month=January; nummonth=1;;
  Feb) month=February; nummonth=2;;
  Mar) month=March; nummonth=3;;
  Apr) month=April; nummonth=4;;
  May) month=May; nummonth=5;;
  Jun) month=June; nummonth=6;;
  Jul) month=July; nummonth=7;;
  Aug) month=August; nummonth=8;;
  Sep) month=September; nummonth=9;;
  Oct) month=October; nummonth=10;;
  Nov) month=November; nummonth=11;;
  Dec) month=December; nummonth=12;;
esac

case $3 in
  ???*) day=$1;;
  *) day=$3; shift;;
esac

Here we have to deal with the problem that the ls output gives either
the time of day or the year.
case $3 in
  *:*) set `date`; eval year=\$$java.lang.NullPointerException
       case $2 in
  Jan) nummonthtod=1;;
  Feb) nummonthtod=2;;
  Mar) nummonthtod=3;;
  Apr) nummonthtod=4;;
  May) nummonthtod=5;;
  Jun) nummonthtod=6;;
  Jul) nummonthtod=7;;
  Aug) nummonthtod=8;;
  Sep) nummonthtod=9;;
  Oct) nummonthtod=10;;
  Nov) nummonthtod=11;;
  Dec) nummonthtod=12;;
       esac
       For the first six month of the year the time notation can also
       be used for files modified in the last year.
       if (expr $nummonth \> $nummonthtod) > /dev/null;
       then
  year=`expr $year - 1`
       fi;;
  *) year=$3;;
esac

The result.
echo $day $month $year

Local Variables:
mode: shell-script
sh-indentation: 2
eval: (add-hook 'write-file-hooks 'time-stamp)
time-stamp-start: "scriptversion="
time-stamp-format: "%:y-%02m-%02d.%02H"
time-stamp-time-zone: "UTC"
time-stamp-end: "; # UTC"
End:

Messung V0.5
C=97 H=89 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.