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手册页的“特殊参数”部分。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |