在这里学习Automator,但我正在尝试在文件上运行转换命令(blah.rtf-> blah.mobi)并且我想获取生成的.mobi文件并运行另一个shell命令它采取了不同的行动。要么是,还是有办法将其设置为第二个变量并在同一个动作中对其进行操作?
到目前为止,这是我的代码(使用Calibre命令行工具):
第一步:
for f in "$@"
do
ebook-convert "$f" "$f".mobi
done
我想传递.mobi文件来运行:
for f in "$@"
do
mv "$f" $(echo "$f" | cut -d'.' -f1).mobi
done
有什么想法?谢谢!
答案 0 :(得分:3)
为了将转换后的文件传递给后续操作,第一个操作必须输出其路径:
for f in "$@"
do
ebook-convert "$f" "$f".mobi
echo "$f".mobi
done
但是你可以通过让第一个动作首先创建具有正确名称的文件(如@tripleee建议的那样)来简化它:
for f in "$@"
do
ebook-convert "$f" "${f%.*}".mobi
# echo "${f%.*}".mobi # optional -- uncomment if you need to pass the files on to subsequent actions
done