5

私は現在zshを学習していて、今は使用したかったのですが、次のようになりstrftimeます。

zsh: command not found: strftime

ドットファイルで常にその機能を使用している人がいるので、私は何か間違ったことをしていると思います。

4

3 に答える 3

7

strftimezshと呼ばれるモジュールで定義されています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
于 2010-04-18T15:30:46.783 に答える
2

strftimeは C 関数ですがdate、コマンド ラインでも同じ機能をすべて備えていると思います。

詳細については、を参照man dateしてください。

オプションを使用して、--date=STRING現在の時刻を取得する代わりに、フォーマットする日付を指定します。

于 2010-04-18T11:59:20.180 に答える
0

Google 経由でここにたどり着いた人には、zmodload. (リソースの競合が原因で .zshrc が遅いことを検出するために使用する ため、新しいファイルシステム要求を追加したくありません。)

${(%):-"%D{STRFTIME_STRING_HERE}"}

その要旨は次のとおりです。

  1. Zsh では${VAR:-DEFAULT}VAR.
  2. (%)前に置くVARことで、や仲間で使う代用トークンの展開が可能にPS1なります。(これは、 などへのアクセスも許可するため、非常に強力な機能です%F{green}。詳細については、「プロンプト シーケンスの拡張」を参照しman zshmiscてください。)
  3. プロンプト展開文字列内で、 を%D{...}呼び出しますstrftime(3)

「エポックからの秒数」のタイムスタンプを取得し、それに対して算術演算を実行できる%D{%s}ため、特に便利です。%s

( %sLinux、AIX、Illumos、MINIX、OSX、およびすべての BSD ファミリ システムでサポートされていますが、POSIX の一部ではなくstrftime、Solaris、HP-UX、 UnixWare、OpenServer、または Windows ライブラリの Cygwin と MinGW が依存しています。)

于 2019-11-07T09:53:02.453 に答える