在 shell 脚本中验证用户响应

在 shell 脚本中验证用户响应

我的 shell 脚本工作正常,文件正在复制到远程目录。但是,我需要检查我的文件是否INPUT_STRING以 开始S,并在 ftp 之前检查文件是否存在于目录中。

#!/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

答案1

您的案例陈述可能如下所示

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
                       ;;

相关内容