Faire un script menu en ksh
Bonjour
Je débute en programmation shell et j'aimerais faire un menu me permettant d'automatiser certaines tâches.
Je souhaiterais rechercher si un répertoire est créé à la date jour J dans un chemin pour ensuite lui assigner une commande .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
case "$reponse" in
1) echo "Renseignez la date du jour YYYYMMDD"
# Vérifiez si le dossier existe "work_date" dans le repertoire /opt/a2001/common/data/databank/
read $date
if [ -d work_$date ] echo "Le fichier existe."
then
[ -d work_$date ] || echo "Le fichier n'existe pas "
fi
do
#Appliquer la commande grep a ce repertoire opt/a2001/common/data/databank/work_date/results/bank_5411_1$ en remplacant YYY-MM- par l'année et le mois des données traitées par la banque de données (en général c'est le mois -1)
#grep YYYY-MM- 5411_1_01.DB_DS_CRLF | awk '{print $1}' | grep -v 00001 | grep -v 00003 | sort | uniq |
Est ce que quelqu'un pourrait m'aider, je sais pas du tout comment vérifier si une directorie est crée (exemple : work_20141101) ,en tapant la date du jour, encore moins appliquer une commande après avoir reçu le résultat :(
Malgré les cours sur internet je n'y arrive pas.
Merci d'avance
Commande grep appliquée à un dossier
Je vous avoue être un peu désemparé pour la suite de mon code et ne sais pas par quel chemin passer.
L'étape 2 de mon script doit :
-faire un grep sur le répertoire donnée en $date et vérifié cad ( je verifie que l'existence du repertoire work_20141101) OK puis je me place dans ces sous parties cad (opt/a2001/common/data/databank/work_20141101/results/bank_5411_1) et la je fais mon grep en remplaçant YYYY-MM par le moi de données -1 donc 20141001)
en code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
1) echo "Rensegnez la date du jour YYYY,MM et DD"
#Verifiez si le dossier existe "work_datejourJ" existe dans le repertoire /opt/a2001/common/data/databank
read date
if [ -d "/opt/a2001/common/data/databank/work_$date" ];
then
echo "Le dir 'work_$date' existe "
cd /opt/a2001/common/data/databank/work_$date/results/bank_5411_1
read YYYY-MM
then grep YYYY-MM- 5411_1_01.DB_DS_CRLF | awk '{print $1}' | grep -v 00001 | grep -v 00003 | sort | uniq
;
else
"le dir 'work_$date' n'existe pas "
fi
#Appliquer la commande grep a ce repertoire opt/a2001/common/data/databank/work_date/results/bank_5411_1$ en remplacant YYY-MM- par l'annéet le mois des donné traité par la banque de donné (éral c'est le mois -1)
#grep YYYY-MM- 5411_1_01.DB_DS_CRLF | awk '{print $1}' | grep -v 00001 | grep -v 00003 | sort | uniq |
Si j'enleve le read YYYY-MM ça marche en remplaçant par grep 2014-10- 5411_1_01.DB_DS_CRLF | awk '{print $1}' | grep -v 00001 | grep -v 00003 | sort | uniq
Par contre je ne sais pas comment mettre ma variable moi -1 (YYYY-MM) et afficher le resultat du grep :(
QQ1 aurait il une idée comment faire ça proprement ?? merci d'avance pour votre aide .
3éme partie de mon script traitement banque de données
Bonjour @ tous,
Pour ma 3ème partie je souhaiterais passer en paramètre 2 dates a un script éxecutable :
Code:
opt/a2001/common/script/tool/check_bdtd_databank_validity.sh 02/08/2011 201107
Avec :
Première date : jour du lancement de la banque de données (JJ/MM/AAAA). Exemple : saisir 02/08/2011 pour une banque de données lancée le 02/08/2011
Deuxième date : Mois des données de la banque de données (AAAAMM)
J’espère être assez clair, j'ai commencer a coder ça mais pas sûr que ça fonctionne :/
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 3) echo "Veuillez passer en parametre La date du jour de lancement (JJ/MM/AAAA) puis Moi de donnees -1"
#echo "Saisir le jour du traitement de la banque de donnees (ex : 01/07/2011 pour une databank lancee le 01/07/2011)"
#read date
#date="01/07/2011"
date=$1
day=`echo $date | cut -d/ -f1`
month=`echo $date | cut -d/ -f2`
year=`echo $date | cut -d/ -f3`
#echo "Saisir le mois des donnees (Ex: 201106)"
#read dateData
#dateData="201106"
dateData=$2
#$1 date lancement banque de donnees
/opt/a2001/common/script/tool/check_bdtd_databank_validity.sh $1 $2
;; |
Vous en pensez quoi ? j'ai recopié sur le script check_bdtd_databank_validity.sh ,je voudrais sur mon menu partie 4 juste taper datejourJ(01/07/2011) espace mois-1(201106).