Macで使用したい小さなスクリプトがUbuntuにあります。関数date
が同じでないため、構文は失敗します。
これは元のUbuntu BASHスクリプトです。
function pass () {
pass="$(ldapsearch -Y GSSAPI -Q -H ldap:///dc%3Dant%2Cdc%3Damazon%2Cdc%3Dcom -b DC=ant,DC=amazon,DC=com -s sub cn=$1 | grep -Ew 'pwdLastSet:' | awk '{print $2}')"
pass_epoch="$(((pass / 10000000) - 11644473600))"
pass_epoch_exp="$((pass_epoch + 86400*90))"
today="$(date +%s)"
countdown_epoch="$(expr $pass_epoch_exp - $today)"
countdown="$((countdown_epoch / 86400))"
pwdSet_date="$(date -d @$pass_epoch)"
expires_date=$(date -d "@$((pass_epoch + 86400*90))")
echo "pwdLastSet: "$pwdSet_date
echo "pwdExpires: "$expires_date
echo " daysLeft: "$countdown
}
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
pwdLastSet:
pwdExpires:
daysLeft: 23
答え1
MacO は Linux と同じ UNIX ファミリに属していないため、コマンドオプションが異なる場合があります。
ソリューション1: man date
あなたの友人です。
-j
MacOSでは、とを組み合わせて使用する必要があります-f
。
E444:~ emas$ date -j -f %Y%m%d-%H%M%S 20180101-234852 +%Y/%m/%d\ %H:%M:%S
2018/01/01 23:48:52
E44:~ emas$ date -j -f %Y%m%d-%H%M%S 20180101-234852 +%s
1514868532
E444:~ emas$ date -j -f %s 1514868532
Mon Jan 1 23:48:52 EST 2018
ソリューション2:醸造(https://brew.sh/)いくつかのGNU / Linuxツールをインストールします。
brew install coreutils
多くの基本ツールがインストールされ、プレフィックスが追加されてg
フォルダに配置されますdate
。gdate
/usr/local/