bash - 获取第一个命令行参数并传递其余参数

标签 bash

例子:

check_prog hostname.com/bin/check_awesome -c 10 -w 13

check_remote -H $HOSTNAME -C "$ARGS"
#To be expanded as
check_remote -H hostname.com -C "/bin/check_awesome -c 10 -w 13"

我希望以上是有道理的。参数会改变,因为我将使用它来执行大约 20 多个命令。这是一种包装程序的奇怪方法,但它可以解决我们在这里使用的一些系统的一些问题(我喜欢 70 年代的代码)。

以上内容可以用 Perl 或 Python 编写,但 Bash 是首选方法。

最佳答案

您可以使用 shift

shift 是一个对位置参数进行操作的 shell 内置函数。每次调用 shift 时,它会将所有位置参数“向下移动”一位。 $2 变成 $1,$3 变成 $2,$4 变成 $3,等等

例子:

$ function foo() { echo $@; shift; echo $@; } 
$ foo 1 2 3
1 2 3
2 3

关于bash - 获取第一个命令行参数并传递其余参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569198/

相关文章:

bash - 如何在没有 `;&` 的 Bash 3.2 中链接案例?

java - 如何在 testcontainers execInContainer 方法中通过管道传输命令

bash - 将多行 var 回显到 Grep

linux - 如何将循环参数插入字符串的中间?

bash - 带双引号、单引号和无引号的假设

linux - bash 脚本 - 循环中的 2 个变量

linux - 从搜索结果中忽略文件夹及其文件

bash - 如何在 docker 容器中执行命令作为 bash shell 脚本的一部分

linux - 如何将linux命令输出保存为变量列表

bash - 在 bash 中进行 Ascii/Hex 转换