Если условие работает впервые, но не во второй раз

Я определил нижеследующее для и если условие в функции. Впервые он работает хорошо. Во второй раз он не запускается после цикла for, он просто пишет инструкцию echo. Почему он ведет себя так?

for outputFile in $outputFiles do echo"Output file is $outputFile" if [ $outputFile == sampple*.pdf ]; then FromFile=$OutputFilePath transferFiles fi done 

  • Ошибка сценария сканирования cPanel при сравнении двух переменных: [:: ожидается целочисленное выражение
  • Я хочу сравнить два списка и распечатать вывод разности из списка 1
  • (test -n $ st)! = (test -z $ st) право?
  • Как написать функцию в bash?
  • Тестирование строки, содержащей только пробелы (вкладки или «»)?
  • Трейлинг двоеточий и встроенная тестовая команда
  • Проверка производительности алгоритма перегрузки в FreeBSD
  • Как я могу создать скрипт bash, который запускает irb, а затем некоторый код ruby?
  • One Solution collect form web for “Если условие работает впервые, но не во второй раз”

    Чтобы выполнить тест на строку с шаблоном globbing файла, используйте case :

     case "$outputFile" in sampple*.pdf) FromFile="$OutputFilePath" transferFiles ;; esac 

    Чтобы выполнить проверку строки на регулярное выражение в bash или ksh93 :

     if [[ "$outputFile" =~ ^sampple.*\.pdf$ ]]; then FromFile="$OutputFilePath" transferFiles fi 

    Обратите внимание на использование [[ ... ]] и =~ а не [ ... ] и == здесь.

    Конструкция [ ... ] обычно не поддерживает оператор == для сравнения строк.

    С помощью [[ ... ]] и == , правая часть берется как шаблон глобуса файла. Таким образом, следующее должно работать (в bash или ksh93 ):

     if [[ "$outputFile" == sampple*.pdf ]]; then # as before fi 
    Interesting Posts

    Получение новых файлов для наследования групповых разрешений для Linux

    telnet на localhost и loopback IP работает, но не LAN ip (Xen + Ubuntu)

    В чем смысл тильды в некоторой версии версии пакета debian openjdk?

    Предотвратите пробуждение мыши

    Как получить сортировку, чтобы показать мне результаты в порядке, подобном человеку?

    Что делает! # (Восклицательный знак хэш),! $: R: r (восклицательный знак доллара д),! #: T (восклицательный знак хэша) означает в нижних командах bash?

    Сортировка данных в порядке убывания первого столбца, для равных значений, используйте второй столбец в порядке возрастания

    «Tar –exclude-backups» не исключает файлы с тильдой в конце

    Сравните два каталога, но только часть имени файла

    Портативный способ получить абсолютный путь скрипта?

    stderr не перенаправляется на stdout

    Список портов, на которых прослушивается процесс PID (желательно с использованием инструментов iproute2)?

    Нельзя использовать свободное пространство в файловой системе

    Есть ли способ выделить часть строки, где происходит ошибка

    Как очистить кеш DNS на DD-WRT

    Linux и Unix - лучшая ОС в мире.