加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何定义具有可变数量参数的shell脚本?

发布时间:2020-12-15 19:07:00 所属栏目:安全 来源:网络整理
导读:我想通过一个shell脚本来定义对gs(ghostscript)的调用的简单缩写。第一个参数给出应该合并的所有文件,最后一个给出输出文件的名称。显然,以下不行(这只是为了显示目标): #!/bin/shgs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$last $1 $2 ..
我想通过一个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手册页的“特殊参数”部分。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读