首页 > 解决方案 > 执行docker exec时如何注入别名?

问题描述

我想在执行 docker exec 命令时注入一些别名,否则我每次都需要输入 alias ll='ls -l' ,所以我做了一段代码,但最后根本没有别名,任何人都可以帮助修复这个问题?

    $ docker exec -itu root $(docker ps -l -q) bash -c "echo alias ll=\'ls -laF\' >> /alias.sh; \
           shopt -s expand_aliases; source /alias.sh; exec bash"

    root@c9ed5e18f77d:/# ll
    bash: ll: command not found
    root@c9ed5e18f77d:/# alias
    root@c9ed5e18f77d:/# source /alias.sh
    root@c9ed5e18f77d:/# alias
    alias ll='ls -laF'

这个我也试过了,也不行。

    $ docker exec -itu root $(docker ps -l -q) bash -c "alias ll='ls -laF'; shopt -s expand_aliases; exec bash"

docker容器是基于debian的,我可以运行这个没问题,所以我认为这是一个关于bash的技巧,请帮助。

    $ docker exec -itu root $(docker ps -l -q) bash -c 'cd /opt; exec bash'
    root@c9ed5e18f77d:/opt# pwd
    /opt
    root@c9ed5e18f77d:/opt#

标签: bashdockerexecaliases

解决方案


推荐阅读