Linuxでは、「2010-10-02」のような日付をシェルスクリプトのUNIXタイムスタンプに変換できます。
date -d "2010-10-02" "+%s"
Mac OSにはdateに相当する-dがないためです。シェルスクリプトで日付をUNIXタイムスタンプに変換する方法を教えてください。
OSXのman date
にはこの例があります
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
私はあなたが望むものを行うと思います。
特定の日付にこれを使用できます
date -j -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"
または、必要な形式を使用します。
date +%s
これはOS X Lionでうまく機能します。
date -j -f "%Y-%m-%d" "2010-10-02" "+%s"
Mac OSXでは以下を使用しました。
currDate=`date +%Y%m%d`
epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")
または、次のようにGNU dateをインストールできます。
brew install coreutils
alias date="/usr/local/bin/gdate"
date +%s
1547838127Macは「異なっている」必要があるというコメントは、コメント者がUNIXの歴史について無知であることを明らかにするだけです。 macOSは、Linuxよりもずっと古いBSD UNIXに基づいています。 Linuxは基本的に他のUNIXシステムのコピーであり、LinuxはBSDツールの代わりにGNUツールを採用することで「異なる」ことを決定しました。 GNUツールはより使いやすいですが、通常は* BSDシステムにはありません(そのまま)。
実際、ほとんどの時間をLinuxで過ごしているが、Macデスクトップを持っている場合、おそらくMacをLinuxのように動作させたいと思うでしょう。 BSDシェルとGNU/Linuxシェルの両方で実行するユーティリティを作成している場合を除き、2つの異なるオプションセットを覚えようとしたり、MacのBSDバージョンのBashのスクリプトを記述したりする意味はありません。