相关疑难解决方法(0)

如何处理选项结束——在 getopts 中

我使用 getopts 将 bash 脚本中的参数解析为

while getopts ":hd:" opt; do
  case $opt in
    d ) echo "directory = $OPTARG"; mydir="$OPTARG"; shift $((OPTIND-1)); OPTIND=1 ;;
    h ) helptext
      graceful_exit ;;
    * ) usage
      clean_up
      exit 1
  esac
done

exeparams="$*"
Run Code Online (Sandbox Code Playgroud)

exeparams将保存任何未解析的选项/参数。因为我想使用 exeparams 来保存要在脚本中执行的命令的选项(它可以与脚本自己的选项重叠),所以我想使用 -- 来结束传递给脚本的选项。如果我通过例如

myscript -d myscriptparam -- -d internalparam
Run Code Online (Sandbox Code Playgroud)

exeparams 将举行

-- -d internalparam
Run Code Online (Sandbox Code Playgroud)

我现在想删除--将这些参数传递给内部命令的前导。有没有一种优雅的方法来做到这一点,或者我可以获得一个只包含其余部分而不--来自 getopts的字符串?

bash getopts

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×1

getopts ×1