Bash 스크립트에서 날짜를 변수로 사용하는 데 문제가 있습니다. 나는 bash나 다른 언어로 아무것도 작성해본 경험이 없다는 것을 인정하지만, 이 문제를 해결하는 임무가 나에게 주어졌습니다. 여기에서 제가 찾고 있는 내용과 유사한 다른 게시물을 몇 개 봤지만 아직 파악하지 못했습니다.
수백 개의 로그 파일을 한 디렉터리에서 이전 달의 연도와 월(숫자) 이름을 딴 아카이브 디렉터리로 이동해야 합니다 2016-07
. 예를 들어 스크립트가 지난 달 디렉터리가 존재하는지 확인하기 위해 아카이브 디렉터리를 조사하고 싶습니다. 그렇지 않은 경우 이를 만들고 로그를 그 안으로 옮깁니다. RHEL 5.11을 사용하고 있습니다.
명령 프롬프트에서 이것은 나에게 필요한 것을 제공합니다:
date +%Y-%m –d “last month”
반품:2016-07
변수로 작동하도록 할 수 없습니다. 나는 다음을 시도했습니다.
last_month=date +%Y-%m -d "last month"
last month=(date +%Y-%m -d "last month")
답변1
마법의 단어는 "명령 대체"입니다. ~에서남자 난교:
명령 대체를 사용하면 명령 출력을 명령 이름으로 바꿀 수 있습니다.
$ d=$(date +%Y-%m -d "last month")
$ echo $d
2016-07
답변2
다음 명령을 시도해 보세요.
$ last_month=`date +%Y-%m -d "last month"`
$ echo $last_month