gpt4 book ai didi

shell - 获取 shell 输出的最后一行作为变量

转载 作者:行者123 更新时间:2023-12-03 14:31:35 24 4
gpt4 key购买 nike

我正在使用 exiftool 编写 shell 脚本,以自动更改某个文件夹中包含的图片上的一些 exif 标签,我想在作业完成时使用输出在我的 NAS(QNAP)上获得通知。

一切都已经正常工作,但是 - 随着通知系统截断消息 - 我只想接收我需要的信息,即 shell 输出的最后一行,例如以下内容:

Warning: [minor] Entries in IFD0 were out of sequence. Fixed. - 2015-07-12 15.41.06.jpg                                                                             
4512 files failed condition
177 image files updated

问题是目前我只收到以下通知:

Exiftool cronjob completed on Camera: 4512 files failed condition



我想得到的是:

Exiftool cronjob completed on Camera: 177 image files updated



脚本如下:
#!/bin/sh
# exiftool script for 2002 problem
dir="/share/Multimedia/Camera"
cd "$dir"
FOLDER="$(printf '%s\n' "${PWD##*/}")"
OUTPUT="$(exiftool -overwrite_original -r '-CreateDate<DateTimeOriginal' -if '$CreateDate eq "2002:12:08 12:00:00"' -if '$DateTimeOriginal ne $CreateDate' *.[Jj][Pp][Gg])"
/sbin/notice_log_tool -a "Exiftool cronjob completed on ${FOLDER}: ${OUTPUT}" --severity=5
exit 0

为此,我使用了 $OUTPUT 变量 | tail -1,但可能我犯了一些基本错误,我收到如下信息:

Exiftool cronjob completed on Camera: 4512 files failed condition | tail -1



如何以正确的方式做到这一点?谢谢

最佳答案

将尾部放在捕获括号内。

OUTPUT=$(exif ... | tail -1)

这里不需要双引号。我猜你
试过了
OUTPUT="$(exif ...) | tail -1"

关于shell - 获取 shell 输出的最后一行作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31381373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com