我想通过一个shell脚本来定义对gs(ghostscript)的调用的简单缩写。第一个参数给出应该合并的所有文件,最后一个给出输出文件的名称。显然,以下不行(这只是为了显示目标):
#!/bin/sh gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$last $1 $2 ...
如何才能做到这一点?
一个人通常会通过myscript infile1.pdf infile2.pdf … outfile.pdf或者myscript * .pdf outfile.pdf来调用这个脚本。
bash变量$ @和$ *扩展到命令行参数列表。一般来说,您将要使用“$ @”(即$ @由双引号括起来)。如果有人通过你的脚本一个参数包含,这将做正确的事情。
所以如果你在你的脚本中有这样的话:
outputfile=$1 shift gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$outputfile "$@"
你打电话给你这样的脚本:
myscript out.pdf foo.ps bar.ps "another file.ps"
这将扩大到:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf foo.ps bar.ps "another file.ps"
有关详细信息,请阅读bash手册页的“特殊参数”部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。