Eu desenvolvi um script que irá comparar duas datas.
#!/bin/ksh
####################################################################
#
#DECLARING ALL THE VALUES AND PATHS
#
####################################################################
LOG_FOLDER=/user/sba-appl/test/sscr/ramu
TARGET_DIR=/user/sba-appl/test/sscr/ramu
###################################################################
#
#GETTING THE TIME STAMP OF THE FILE
#
####################################################################
cd $TARGET_DIR
DEFAULT_DATE='ls -l /$TARGET_DIR/default.txt| awk '{print $6,$7,$8}''
printf "$DEFAULT_DATE \n"
for f in *.xml
do
echo "Processing $f"
FILE_DATE='ls -l /$TARGET_DIR/$f|awk '{print $6,$7,$8}''
printf "$FILE_DATE \n"
echo "dafault filedate is $DEFAULT_DATE"
if [ $FILE_DATE -gt $DEFAULT_DATE ]
then
echo "Call the Jar for the file $f"
else
echo "Do not call the Jar for the file $f"
fi
done
Aqui estou enfrentando dois problemas:
1. Neste temos um arquivo padrão e este timestamp arquivo deve ser definido para o tempo antigo, ou seja, por exemplo, 1990. Eu sei que isso pode ser feito com a ajuda de touch -t
com o timestamp .
Estou usando um ksh e stat não está presente aqui. Então estou usando ls -l
. Mas se eu estiver usando o comando ls -l
, ele listará o ano de 1990 (porque ele sempre listará o ano se o arquivo for 6 meses mais antigo). Nesse caso, meu valor default_date terá ano.
Então, acho que minha condição se está falhando com o ano chegando.
2. Mudei o timestamp dos arquivos incluindo default.txt
dentro de 6 meses e verifiquei agora, mas ainda não está executando a parte if e está executando a parte else.
Eu também estou recebendo um operador de teste desconhecido. Alguém pode me dizer onde está indo errado. Será de grande ajuda se alguém puder verificar isso.
Estou enfrentando dois problemas aqui:
- Nesta comparação, a condição if não está funcionando corretamente.
- Sempre está imprimindo somente a outra parte.