加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在`$@`bash变量中包含`-e`参数?

发布时间:2020-12-16 01:34:48 所属栏目:安全 来源:网络整理
导读:我正在创建一个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参数. 例
我正在创建一个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 ' - %qn' "$@"

……你会看到-e present.

当字符串作为其第一个参数时,符合POSIX的echo实现将在输出上打印-e.除非设置了set -o posix和shopt -s xpg_echo运行时选项,否则bash的实现不符合要求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读