log_Jan_01_hh:mm:ss
변수 timestamp가 다음과 같이 정의되도록 log_files의 이름을 지정하고 싶습니다 date +"%b_%d_%T"
.
이제 값을 변수로 설정하면 다음과 같습니다.
setenv now `date +"%b_%d_%T"`
그런 다음 $now
변수는 그 순간 업데이트된 값을 가져오므로 로그 파일의 이름은 항상 동일합니다.
$now
매 순간 가치를 새로 고치려면 어떻게 해야 합니까 ?
답변1
문자열을 저장 $now
하고 호출할 때 백틱을 추가하면 현재 날짜를 얻게 됩니다.
[~]% setenv now 'date +"%b_%d_%T"'
[~]% echo $now
date +"%b_%d_%T"
[~]% echo `$now`
"Dec_03_13:09:52"
[~]% echo `$now`
"Dec_03_13:09:54"
이는 다음을 수행하는 것과 사실상 동일합니다.
[~]% echo `date +"%b_%d_%T"`
호출 변수를 재평가하도록 명령에 지시할 방법이 없습니다 tcsh
. 변수에 문자열을 할당하면 $now
해당 tcsh
문자열을 생성한 명령이 무엇인지 알 수 없습니다.
또 다른 (가능한) 해결책은 함수를 사용하는 것일 수도 있지만 tcsh
그 함수도 누락되었습니다...
답변2
crontab에 추가하고 매분마다 실행하십시오.
crontab -e
다음과 같은 줄을 삽입하세요.
* * * * * setenv now 'date +"%b_%d_%T"'
저장 및 종료. 변수는 1분마다 업데이트됩니다.