我有两个文件夹original_images和pdf_backup。这些文件夹包含pdf文件,如果我将该位置保存在变量中,如何循环遍历所有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
没有执行,但是如果我直接给出该路径,则意味着循环正在执行。为什么这样?我该如何解决?先感谢您
分析解答
不要将通配符存储在变量中;只需将路径的固定部分存储在变量中,将对它的引用放在double-quotes中,这样就不会被路径中的空格弄糊涂,然后将通配符部分放在不带引号的位置:
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
(注意:我也切换到了一种更简单的everything-in-double-quotes格式来设置location
,而不是混合使用转义符和double-quotes。)