Mac bash의 날짜 명령

Mac bash의 날짜 명령

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당신의 친구입니다.

-jMacOS에서는 및 를 조합하여 사용해야 합니다 -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/

관련 정보