我试图在我的makefile中编写一个命令来获取当前文件夹并删除所有"。"从名字。
我可以使用$${PWD##*/}
获取当前文件夹,然后我可以删除带有$${PWD//.}
的"。"但我无法弄清楚如何将这两者合并为一个。
我需要这个的原因是根据项目名称杀死我的docker容器。这是我的命令:
docker ps -q --filter name="mycontainer" | xargs -r docker stop
我希望我能在我的容器名称之前注入项目名称,如下所示:
docker ps -q --filter name=$${PWD##*/}"_mycontainer" | xargs -r docker stop
答案 0 :(得分:0)
您可以尝试:
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
请注意,有更多方法可以做到这一点(效率更高)。