我正在创建一个bash脚本,它将包装一个docker run命令,传入所有参数.正在运行的docker cmd有一个-e参数,如下所示:
docker run --rm -it --name some_name -v $(pwd):/some_dir some_image some_command -e -r -t
但是,bash脚本由于某种原因未传入-e参数.
例如,我有以下test.sh脚本.
#!/bin/bash echo "Echoing the command arguments." echo $@
在第一个位置时,-e参数不会传递给$@.
$./test.sh -e -r -t Echoing the command arguments. -r -t $./test.sh -r -e -t Echoing the command arguments. -r -e -t
最后,我希望能够按如下方式调用docker命令,只需将所有给定参数从bash脚本传递到docker命令即可.
docker run --rm -it --name some_name -v $(pwd):/some_dir some_image some_command $@
如果用户希望传入-e参数并且不发生关联活动,则这可能会使用户感到困惑.
有没有办法让-e参数通过?
将您的测试更改为:
#!/bin/bash echo "Echoing the command arguments:" printf ' - %q\n' "$@"
……你会看到-e present.
当字符串作为其第一个参数时,符合POSIX的echo实现将在输出上打印-e.除非设置了set -o posix和shopt -s xpg_echo运行时选项,否则bash的实现不符合要求.
原文地址:https://www.jb51.cc/bash/383396.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。