파일이 존재하는지 테스트하는 쉘 스크립트를 작성하십시오. 그렇다면 삭제된 파일의 타임스탬프 형식 로그를 YYYYMMDD-HH:MM:SS 날짜 명령으로 표시하고 파일을 삭제한 후 at 명령을 사용하여 5분 후에 실행되도록 자체 일정을 조정합니다.
if (( test -f /tmp/norun ))
then
echo " removing /tmp/norun" 'data +%Y%m%d-%T'>>s30928290.log
#rm /tmp/norun
#timesh='date --date="1 minute"
at -f /home/s300928290/s300928290.at now + 5 miniutes
else
echo "hello world" 'data +%Y%m%d-%T'>>s30928290.log
fi
#echo "none";
이 스크립트를 실행할 수 없습니다. 이유를 아는 사람 있나요?
답변1
스크립트를 다음과 같이 수정했습니다.
if [[ -f /tmp/norun ]]; then
echo "Removing /tmp/norun $(date '+%Y%m%d-%T')" >>s30928290.log
rm -- /tmp/norun
timesh=$(date --date='1 minute') # This variable is not being used
at -f /home/s300928290/s300928290.at now + 5 minutes
else
echo "Hello, world $(date '+%Y%m%d-%T')" >>s30928290.log
fi
Kusalananda가 지적했듯이 (( ... ))
파일 테스트에 유효하지 않은 bash 산술 표현식이므로 [[ ... ]]
.
data
당신이 그것을 원한다고 믿을 때 당신은 그것을 갖게 됩니다 date
. 이는 명령 대체( )에도 적용되어야 합니다 $( ... )
.
또한 명령의 철자가 minutes
잘못 되었습니다.at