我想在执行 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#
您可以尝试使用命名管道
E.x.
docker compose exec -it radarr bash -c "exec bash --init-file <(echo alias 'll=ls\\ -la')"