Перевірка відповіді користувача в сценарії оболонки


0

Мій скрипт оболонки працює нормально, а файли копіюються у віддалений каталог. Однак мені потрібно перевірити, чи INPUT_STRINGпочинається мій , Sа також перевірити, чи файли присутні в каталозі, перш ніж я його завантажую.

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

Дякую Тіану. чи можемо ми додати валідацію, щоб перевірити, починається чи рядок введення з S чи ні, якщо [[$ {# input_variable} -ne "7"]]
chandra prakash

Я думаю, ви можете поставити це "якщо" всередині блоку S *) і скористатися командою "продовжити" всередині нього, щоб негайно повернутися до меню ....
Лучано Андресс Мартіні

Ось в чому S*)справа, просто додайте цей додатковий випадок після вашого тестового випадку, щоб побачити, що цей розділ виконується лише тоді, коли ваш рядок введення починається з "s".
X Tian
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.