日付/時刻のゼロサプレス

対象: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つあります。サンプルにあるように @を 使いたい場合と、@ をやめる方法です。

200×200 高速大容量レンタルサーバ10G
mixhost

“日付/時刻のゼロサプレス” の続きを読む