Как получить текущее имя и удалить символы из имени в bash - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь написать одну команду в моем make-файле, чтобы получить текущую папку и удалить все "."из названия.Я могу получить текущую папку с помощью $${PWD##*/} и удалить «.» С помощью $${PWD//.}, но не могу понять, как объединить эти два в одно.

Причина, по которой мне это нужно, заключается в том, чтоубить мои Docker-контейнеры на основе имени проекта.Это моя команда:

docker ps -q --filter name="mycontainer" | xargs -r docker stop

, и я надеялся, что смогу внедрить имя проекта перед именем моего контейнера, например:

docker ps -q --filter name=$${PWD##*/}"_mycontainer" | xargs -r docker stop

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете попробовать:

var=$(echo ${PWD##*/} | sed "s/\.//")

или:

var=$(tmp=${PWD##*/} && printf "${tmp//./}")

В вашем случае использования будет что-то вроде:

docker ps -q --filter name=$(tmp=${PWD##*/} && printf "%s_mycontainer" "${tmp//./}") | xargs -r docker stop

Обратите внимание, что есть ещеспособы сделать это (даже более эффективно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...