나는 $days
에서 $date
의 형식으로 yyyy-MM-dd
으로 subtrac을 시도해 왔지만 Solaris 11에서는 아무 것도 작동하지 않았습니다. 일부 솔루션은 시간대와 '트릭'이지만 시간대에 따라 다르며 정확하게 생각합니다. 그건 속임수 야.Solaris 11의 bash 쉘에서 날짜를 빼는 방법은 무엇입니까?
date=2000-12-31
days=1
julian=$(toJulian $date)
resultJulian=$(subtractDays $julian $days)
resultGregorian=toGregorian $resultJulian
: 내가 생각할 수있는 유일한 것은, 예를 들어, 줄리안 표현으로 날짜를 변환 어느 날 빼고 다시 YYYY-MM-DD 표현을 얻을 수 있기 때문에
나는, 저렴한 솔루션을 싶습니다
그럼,이 모든 과정없이 어떻게해야합니까? 감사. 당신은 GNU 날짜 또는 GNU AWK이없는 경우
중요한 것은 실제로 bash라는 것이 아니라 사용할 수있는'date' 버전입니다. 일부 Solaris 시스템은 기본 PATH에 없더라도 GNU 도구를 설치합니다. –
시스템에 GNU core-utils 패키지가 설치되어 있지 않으면이 방법이 유용 할 것입니다. 흠 .. 그냥 p 코드를 보여 주므로 "함수"를 실제로 호출하지 않을 것이고, 당신은 특별한 args를 date에 제출할 것입니다.1970 년 이후 몇 가지'-s' 값으로 변환하고, 그 값에서 24 * 60 * 60 초를 뺍니다. GNU util을 가지고 있다면, 날짜 - 수학 능력을 확장 한'date' cmd가 별도로 있어야합니다. 나는 또한 gawk의 최신 버전이 데이트 수학을 할 수 있다고 생각하지만 확실히 알아 내기 위해서는'man gawk'을해야 할 것이다. – shellter
사실'resultGregorian = toGregorian $ resultJulian'은 '$ resultJulian'이 명령으로 확장되고'resultGregorian'이 환경에서 일시적으로'toGregorian'으로 설정되어 실행됩니다. 확실히 그것은 당신이 원하는 것이 아닙니다. –