Создал файл
$ cat ~/.local/bin/dcrm
#/bin/bash
echo "-it -v \"$PWD\":/pr -w /pr -u $(id -u):$(id -g)"
$ dcrm
-it -v "/disk/Projects/graph":/pr -w /pr -u 1000:1000
Применяю:
$ docker run --rm $(dcrm) hello-world
docker: Error response from daemon: create "/disk/Projects/graph": "\"/disk/Projects/graph\"" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.
Ожидается, что это команда эквивалентна
docker run --rm -it -v "/disk/Projects/graph":/pr -w /pr -u 1000:1000 hello-world
Как видно, -it, -v и параметр -v передаются команде docker как отдельные параметры — всё как и задумано.
Однако, кавычки входят в состав параметра, что не есть хорошо. Убрать кавычки не могу, чтобы предотвратить расширение пути ($PWD) в случае наличия пробелов в нём.
Почему bash себя так ведёт?
Как правильно написать?