我正在MEAN堆栈中开发应用程序。当新图像上传到服务器时,我想创建一个调整图像大小的脚本作为后台处理。如何在变量中存储tail命令的结果?
脚本观看文件夹中的新图像上传并裁剪它。
我首选Linux shell脚本作为守护进程的方式。
我已经用下面的想法来完成任务。 - 在photolog.txt文件中写入的服务器上的新图像上载,我可以逐行抓取图像。 - 我在watch.sh shell脚本文件中读取了photolog.txt。 - 它逐行迭代,直到达到EOL。 - 新文件再次到达它将附加到EOL。 - 我设法通过tail命令获取更新的文件,并在命令行中获取最新的添加文件显示。用这个代码代替它的魅力。
现在我成功地抓取了服务器上新增文件的图像列表。但主要问题是我无法将tail命令的输出存储在变量中,它必须对我来说,因为无论我得到的输出是文件名的完整路径,它都将用于imagemagick裁剪命令。
Imagemagick中心裁剪缩放图像。
转换-define 文件类型:尺寸= 宽度x高度original_filename -thumbnail 120×120^-gravity中心-extent 100×100 resize_filename
watch.sh
#!/bin/bash
path="/var/www/html/AppBite/trunk/photolog.txt"
cat $path | \
until false
do
# If file exists
if [[ -f "$path" ]]
then
while IFS= read -r photo
do
imageFormat=`identify $photo | awk '{print $2}'`
imageScale=`identify $photo | awk '{print $3}'`
echo "$photo $imageFormat $imageScale"
done
fi
# Continous monitor file changes via commandline
tail -f $path
done
我成功抓取命令行输出,但我无法将值存储在变量中,以便下次使用imagemagick图像处理命令。
或建议我以其他方式连续监视文件夹以获取新添加的文件列表。
我真的很感激,如果你给我一个建议这个想法我的想法是错的还是对的?或者我需要改进这个? –