在定界符之后将所有参数传递给另一个命令

海拉玛德

我想将所有参数从shell脚本传递给另一个命令,除非其中一个参数是a --,在这种情况下,我想--在脚本中使用之前的参数,而仅在之后传递参数--

例如,如果我的脚本是foo.sh

./foo.sh -a bar -p qux -- --recursive -p 8080

我想用-a和第一-p参数在我的剧本,并通过对--recursive和第二-p

我的最初想法是首先遍历每个参数,直到--找到a,然后使用shift提取所需的参数,然后使用将其余的参数传递给另一个命令$@,但是我希望有一种更优雅的方法来做到这一点。

附带说明,我目前正在使用getopts提取参数,因此与之配合使用的解决方案将是最佳选择。

厢式货车

不确定这是您想要的,摘自GNU手册的简化示例

#!/bin/bash 
aflag=
bflag=
cflag=
dflag=
while getopts abcd name
do
  case $name in
    a)    aflag=1;;
    b)    bflag=1;;
    c)    cflag=1;;
    d)    dflag=1;;
  esac
done

shift $(($OPTIND - 1))
printf "Remaining arguments are: %s\n" "$*"

结果

$ ./test.sh  -a -b -- -c -d
Remaining arguments are: -c -d

手册相关部分的完整性

每次调用它时,getopts实用程序都应将下一个选项的值放在由名称操作数指定的shell变量中,并将要处理的下一个参数的索引放入shell变量OPTIND中。每当调用该shell时,OPTIND都应初始化为1。

[...]

当遇到选项的结尾时,getopts实用程序将以大于零的返回值退出;否则,返回0。外壳程序变量OPTIND应设置为第一个非选项参数的索引,如果前面没有其他非选项参数,则将第一个“-”参数视为选项参数,或者如果没有非选项参数,则值“ $#” + 1;名称变量应设置为问号字符。以下任何一项均应标识选项的结尾:特殊选项“-”,查找不以“-”开头的自变量或遇到错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将函数的所有参数传递给另一个命令?

来自分类Dev

如果一个定界符跟在另一个定界符之后,则用定界符分割字符串并检索空白

来自分类Dev

如何将换行符分隔的列表作为参数传递给另一个命令?

来自分类Dev

将命令行参数传递给bash中的另一个命令

来自分类Dev

如何将命令输出作为多个参数传递给另一个命令

来自分类Dev

如何将终端命令作为参数传递给另一个命令

来自分类Dev

将xargs参数作为字符串传递给带有'>'的另一个命令?

来自分类Dev

如何将输出作为参数传递给另一个命令?

来自分类Dev

将参数传递给另一个用户运行的命令

来自分类Dev

拆分字符串保留一些定界符,但删除另一个定界符

来自分类Dev

将所有类方法传递给Ruby on Rails中的另一个函数

来自分类Dev

将参数传递给另一个带有空格的Bash文件

来自分类Dev

将具有不同数量参数的函数传递给另一个函数C ++

来自分类Dev

将具有任意数量参数的任何函数传递给另一个函数

来自分类Dev

将一个方法作为参数传递给另一个方法,但带有参数

来自分类Dev

将一个命令传递给终端上的另一个命令

来自分类Dev

Javascript-替换除最后一个定界符外的所有定界符

来自分类Dev

如何将* all *输入的shell命令的输出传递给另一个?(例如,将所有内容通过管道传送到“ lolcat”中)

来自分类Dev

如何将值从另一个文件或命令提示符传递给类

来自分类Dev

将一个命令的输出传递给另一个

来自分类Dev

如何将一个命令的输出作为命令行参数传递给另一个命令?

来自分类Dev

将一个方法作为参数传递给另一个方法

来自分类Dev

将一个函数的参数传递给另一个函数?

来自分类Dev

将一个方法作为参数传递给另一个方法

来自分类Dev

将一个函数传递给另一个函数的参数

来自分类Dev

将一个函数的返回参数值传递给另一个烧瓶

来自分类Dev

将参数从另一个 powershell 脚本传递给一个 powershell 脚本

来自分类Dev

将参数传递给命令行以进行连接,并在建立连接后在同一命令中传递另一个参数

来自分类Dev

如何从两个定界符之间的字符串中获取一个值,然后将另一个值设置为定界符后面的值?

Related 相关文章

  1. 1

    如何将函数的所有参数传递给另一个命令?

  2. 2

    如果一个定界符跟在另一个定界符之后,则用定界符分割字符串并检索空白

  3. 3

    如何将换行符分隔的列表作为参数传递给另一个命令?

  4. 4

    将命令行参数传递给bash中的另一个命令

  5. 5

    如何将命令输出作为多个参数传递给另一个命令

  6. 6

    如何将终端命令作为参数传递给另一个命令

  7. 7

    将xargs参数作为字符串传递给带有'>'的另一个命令?

  8. 8

    如何将输出作为参数传递给另一个命令?

  9. 9

    将参数传递给另一个用户运行的命令

  10. 10

    拆分字符串保留一些定界符,但删除另一个定界符

  11. 11

    将所有类方法传递给Ruby on Rails中的另一个函数

  12. 12

    将参数传递给另一个带有空格的Bash文件

  13. 13

    将具有不同数量参数的函数传递给另一个函数C ++

  14. 14

    将具有任意数量参数的任何函数传递给另一个函数

  15. 15

    将一个方法作为参数传递给另一个方法,但带有参数

  16. 16

    将一个命令传递给终端上的另一个命令

  17. 17

    Javascript-替换除最后一个定界符外的所有定界符

  18. 18

    如何将* all *输入的shell命令的输出传递给另一个?(例如,将所有内容通过管道传送到“ lolcat”中)

  19. 19

    如何将值从另一个文件或命令提示符传递给类

  20. 20

    将一个命令的输出传递给另一个

  21. 21

    如何将一个命令的输出作为命令行参数传递给另一个命令?

  22. 22

    将一个方法作为参数传递给另一个方法

  23. 23

    将一个函数的参数传递给另一个函数?

  24. 24

    将一个方法作为参数传递给另一个方法

  25. 25

    将一个函数传递给另一个函数的参数

  26. 26

    将一个函数的返回参数值传递给另一个烧瓶

  27. 27

    将参数从另一个 powershell 脚本传递给一个 powershell 脚本

  28. 28

    将参数传递给命令行以进行连接,并在建立连接后在同一命令中传递另一个参数

  29. 29

    如何从两个定界符之间的字符串中获取一个值,然后将另一个值设置为定界符后面的值?

热门标签

归档