传递 Bash 脚本中的所有参数

传递 Bash 脚本中的所有参数

在我的脚本中,我使用awk,选项是硬编码的,但文件名不是,所以awk options $1如果我想要 2 个文件版本,我会这样做awk options $1 $2

如何对任意数量的文件执行此操作?($1最多"$last")。

答案1

您可以重新设计您的脚本来使用"$@";或者您可以$#相应地检查并运行您的命令。

Bash 参考手册状态:

$@扩展为位置参数,从一开始。当扩展发生在双引号内时,每个参数都会扩展为一个单独的单词。也就是说,"$@"相当于"$1" "$2" …。[…] 当没有位置参数时,"$@"扩展$@为无(即,它们被删除)。

awk options "$@"

如果您需要使用一些非文件名的命令行参数,请查看shift内置参数。

$#扩展为十进制的位置参数的数量。

如果您需要根据这个数字调用不同的命令,请与一些条件一起使用它。

相关内容