対象:csh、tcsh
Cシェルの日付計算ジ時の0の扱い
dateコマンドで日付や時刻を取得した場合、ゼロ付きというかゼロで先頭を埋めて返ってくるものがあります。man dateを見てください。
%H hour (00..23) %I hour (01..12) %j day of year (001..366) %k hour ( 0..23) %l hour ( 1..12) %m month (01..12) %M minute (00..59) %S second (00..60)
抜粋したものを載せました。
時などは、%H の代わりに %k を使うなどすれば良いのですが、分や秒はどうしても0が付く場合があります。0が付いたままシェルの中で計算するとエラーになる場合があります。下記に例を示します。
% @ b = 8 + 1 % echo $b 9 % @ b = 08 + 1 @: 番号が正しい書式になっていません.
例では 8 と 08 で比較していますが、二桁であればうまく動いてしまいます。
そこで、先頭から続く0を考慮する必要があります。やり方としては2つあります。サンプルにあるように @を 使いたい場合と、@ をやめる方法です。