シェルスクリプトでユーザー応答を確認する

シェルスクリプトでユーザー応答を確認する

私のシェルスクリプトが正常に動作し、ファイルがリモートディレクトリにコピーされています。ただし、私のファイルが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
                       ;;

おすすめ記事