我使用 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的字符串?