Bash文件测试条件

Bash文件测试条件,bash,conditional,Bash,Conditional,我正在使用Hugin工具集的命令行版本生成全景图。在执行脚本时,所有图像都被排序到由n个图像组成的文件夹中,这些图像由单个全景组成。根据混合过程的执行情况,可能会产生两个文件名之一:pano.tif和pano\u blended\u fused.tif 无论生成哪个文件,我都希望将该文件转换为jpg并调整大小。我现在的代码是 dirlist=$(find . -mindepth 1 -maxdepth 1 -type d \( ! -name completed \) | sort -n) fo

我正在使用Hugin工具集的命令行版本生成全景图。在执行脚本时,所有图像都被排序到由n个图像组成的文件夹中,这些图像由单个全景组成。根据混合过程的执行情况,可能会产生两个文件名之一:
pano.tif
pano\u blended\u fused.tif

无论生成哪个文件,我都希望将该文件转换为jpg并调整大小。我现在的代码是

dirlist=$(find . -mindepth 1 -maxdepth 1 -type d \( ! -name completed \) | sort -n)
for dir in $dirlist
do
    #pano generating gode goes here


  #Downsize and convert panorama
  #######################################################################
  tifImage=
  jpgImage=

  if [ -e "pano.tif" ]; then
    tifImage="pano.tif"
    jpgImage="pano.jpg"
    echo "Working on pano.tif"
    echo ""

  elif [ -e "pano_blended_fused" ]; then
    tifImage="pano_blended_fused.tif"
    jpgImage="pano_blended_fused.jpg"
    echo "Working on pano_blended_fused.tif"
    echo ""
  fi

  #convert pano to jpg and get count of images in photo folder
  echo ""
  echo "Converting $image to jpg and creating two versions"
  echo ""
  mogrify -format jpg $tifImage >> "$imagePath/$dir/log.txt"

  num=$(ls -l "$webPath/photos" | wc -l) 
  prefix=$((num+1))

  #convert full size pano to 1000 pixels high and rename with prefix number
  #move to /photos folder
  convert $jpgImage -geometry x1000 "$prefix-pano.jpg" >> "$imagePath/$dir/log.txt"
  mv "$prefix-pano.jpg" "$webPath/photos" >> "$imagePath/$dir/log.txt"

  #convert full size pano to 600 pixels wide and rename with prefix number
  #move to /thumbs folder
  convert $jpgImage -geometry 600x "$prefix-pano.jpg" >> "$imagePath/$dir/log.txt"
  mv "$prefix-pano.jpg" "$webPath/thumbs"  >> "$imagePath/$dir/log.txt"


done
昨晚我刚拍了一批照片,在15张要生成的全景图中,只有9张进入了destiniation文件夹。所有其他人在第一个
convert
命令中抛出一个错误,指出它缺少一个图像文件名
n-pano.tif
,而
$tifImage
变量应该是
pano\u混合的.tif


我需要做什么才能使“pano\u blended\u fused”图像通过转换过程?

您忘记包含完整的文件名,扩展名丢失:

elif [ -e "pano_blended_fused" ]; then
vs


因此,变量从未更改,
convert
也没有得到它想要的结果。

感谢您指出这个愚蠢的错误。我想我错过了一个新手的失误,真是太累了。
elif [ -e "pano_blended_fused.tif" ]; then