私は現在zshを学習していて、今は使用したかったのですが、次のようになりstrftime
ます。
zsh: command not found: strftime
ドットファイルで常にその機能を使用している人がいるので、私は何か間違ったことをしていると思います。
私は現在zshを学習していて、今は使用したかったのですが、次のようになりstrftime
ます。
zsh: command not found: strftime
ドットファイルで常にその機能を使用している人がいるので、私は何か間違ったことをしていると思います。
strftime
zsh
と呼ばれるモジュールで定義されていますdatetime
。このzmodload
コマンドは、コロンで区切られたディレクトリのリストからモジュールをロードします$module_path
。
私のシステムでは:
% echo $module_path
/usr/lib/zsh/4.3.10
% ls -l $module_path
drwxr-xr-x 3 root root 4096 2009-11-05 01:03 zsh
% ls -l $module_path/zsh/datetime*
-rw-r--r-- 1 root root 9828 2009-09-10 02:45 /usr/lib/zsh/4.3.10/zsh/datetime.so
% type -a strftime
strftime not found
% zmodload zsh/datetime
% strftime %Y-%m-%d 1271603087
2010-04-18
% type -a strftime
strftime is a shell builtin
% /bin/date -d @1271603087 +%Y-%m-%d
2010-04-18
strftime
は C 関数ですがdate
、コマンド ラインでも同じ機能をすべて備えていると思います。
詳細については、を参照man date
してください。
オプションを使用して、--date=STRING
現在の時刻を取得する代わりに、フォーマットする日付を指定します。
Google 経由でここにたどり着いた人には、zmodload
. (リソースの競合が原因で .zshrc が遅いことを検出するために使用する ため、新しいファイルシステム要求を追加したくありません。)
${(%):-"%D{STRFTIME_STRING_HERE}"}
その要旨は次のとおりです。
${VAR:-DEFAULT}
、VAR
.(%)
前に置くVAR
ことで、や仲間で使う代用トークンの展開が可能にPS1
なります。(これは、 などへのアクセスも許可するため、非常に強力な機能です%F{green}
。詳細については、「プロンプト シーケンスの拡張」を参照しman zshmisc
てください。)%D{...}
呼び出しますstrftime(3)
。「エポックからの秒数」のタイムスタンプを取得し、それに対して算術演算を実行できる%D{%s}
ため、特に便利です。%s
( %s
Linux、AIX、Illumos、MINIX、OSX、およびすべての BSD ファミリ システムでサポートされていますが、POSIX の一部ではなくstrftime
、Solaris、HP-UX、 UnixWare、OpenServer、または Windows ライブラリの Cygwin と MinGW が依存しています。)