Для моего варианта использования я хотел установить alias
, который не будет сохраняться, если мы повторно выполним c оболочку. Однако псевдонимы могут быть записаны в ~/.bashrc
, который будет перезагружен в последующем exe c. Er go,
docker-bash() {
docker run --rm -it "$1" bash -c $'set -o xtrace; echo "alias ll=\'ls -lAhtrF --color=always\'" >> ~/.bashrc; exec "$0"'
}
Работает. --rm
должен очистить любые файлы, которые мы создаем, если я правильно понимаю, как работает docker.
Или, возможно, это лучший способ написать:
docker-bash() {
read -r -d '' BASHRC << EOM
alias ll='ls -lAhtrF --color=always'
EOM
docker run --rm -it "$1" bash -c "echo \"$BASHRC\" >> ~/.bashrc; exec \"\$0\""
}