繁体   English   中英

将shell结果传递给另一个shell命令?

[英]Passing shell result to another shell command?

只是在这里学习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

有什么想法吗? 谢谢!

为了将转换后的文件传递给后续操作,第一个操作必须输出其路径:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM