Как l oop через все pdf файлы в папке, если имя папки находится в переменной в bash? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть две папки original_images и pdf_backup. Эти папки содержат файлы pdf, если я сохраняю это местоположение в переменной, как я могу l oop просмотреть все файлы pdf.

if some count > 10 
  location=/home/BACKUP/teamshare2/my\ Raw\ Data/"$1"/"$2"/"$3"/original_images/*.pdf
else
  location=/home/BACKUP/teamshare2/my\ Raw\ Data/"$1"/"$2"/"$3"/pdf_backup/*.pdf
for f in $location
      ---pdf files---

, когда я делаю for loop не выполняется, но если я даю этот путь напрямую, это означает, что выполняется oop. Почему так? Как я могу решить это? Заранее спасибо

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Не хранить групповые символы в переменных; просто сохраните фиксированную часть пути в переменной, поместите ссылку на нее в двойных кавычках, чтобы она не путалась с пробелами в пути, а затем поместите часть шаблона без кавычек:

if some count > 10 
  location="/home/BACKUP/teamshare2/my Raw Data/$1/$2/$3/original_images"
else
  location="/home/BACKUP/teamshare2/my Raw Data/$1/$2/$3/pdf_backup"
for f in "$location"/*.pdf

(Примечание: я также переключился на более простой формат «все в двойных кавычках» для установки location вместо смешивания escape-символов и двойных кавычек.)

0 голосов
/ 20 апреля 2020

У меня есть две папки folder_one и folder_two. Эти папки содержат файлы pdf, если я сохраняю это местоположение в переменной, как я могу l oop через все файлы pdf.

Использовать массив не простая переменная.

array1=(folder_one/*.pdf)

array2=(folder_two/*.pdf)

Объединить их вместе

array=(folder_one/*.pdf)
array+=(folder_two/*.pdf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...