Mein Shell-Skript funktioniert einwandfrei und die Dateien werden in das Remote-Verzeichnis kopiert. Ich muss jedoch prüfen, ob mein Skript INPUT_STRING
mit beginnt S
und ob die Dateien im Verzeichnis vorhanden sind, bevor ich es per FTP versende.
#!/bin/bash
echo "Enter if the tag is present in
Dev
Test
Prod
"
while :
do
read -r INPUT_STRING
INPUT_STRING=`echo $INPUT_STRING | tr '[:lower:]' '[:upper:]'`
case $INPUT_STRING in
test | TEST)
echo "Please enter Tag no : "
read -r input_variable
if [[ ${#input_variable} -ne "7" ]]
then
echo "Please check the Tag no"
exit 1
fi
HOST=xxxx
USER=xxxx
PASSWORD=xxxx
mypath="/path/to/$input_variable/"
ftp -inv $HOST <<- EOF > FTPLOG
user $USER $PASSWORD
cd "$mypath"
pwd
mput x
mput y.csv
mput x.csv
mput a.csv
mput b.out
EOF
fgrep "550 Failed to change directory" FTPLOG >& /dev/null
if [[ $? -eq 0 ]]
then
echo "File is not transfered to the tag $input_variable. Please check the
tag no given"
else
echo "File is transfered to the tag $input_variable"
fi
exit 1
;;
*)
echo "Error: Invalid option..."
exit 1
;;
esac
done
Antwort1
So könnte Ihr Case Statement aussehen
S*)
echo Starts with S
if [[ -f x && -f x.csv ]]
then
echo File x and x.csv exist
else
echo input file missing
fi
;;