Just learning Automator here, but I'm trying to run a convert command on a file (blah.rtf->blah.mobi) and I'd like to take the resulting .mobi file and run another shell command on it in a different action. Either that, or is there a way to set it as a second variable and act on it in the same action?
Here's my code so far (using Calibre command-line tools):
First a开发者_C百科ction:
for f in "$@"
do
ebook-convert "$f" "$f".mobi
done
I'd like to pass that .mobi file to run:
for f in "$@"
do
mv "$f" $(echo "$f" | cut -d'.' -f1).mobi
done
Any thoughts? Thanks!
In order to pass the converted files to subsequent actions, the first action must output their paths:
for f in "$@"
do
ebook-convert "$f" "$f".mobi
echo "$f".mobi
done
But you can make it much simpler by making the first action create the files with the correct names in the first place (as @tripleee suggested):
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
精彩评论