Linux 使用变量replace创建文件,并替换字符串中的某些字符

Linux 使用变量replace创建文件,并替换字符串中的某些字符,linux,shell,gitlab-ci,Linux,Shell,Gitlab Ci,我正在编写一个gitlab ci脚本,该脚本将采用提交标记(例如:0.1.6),并使用它创建一个文件。但是,文件名不能有“.”,我需要将其替换为“-”。(新文件名为“0-1-6”) 我一直在玩弄以下内容: $ string="0.1.6" $ echo "$string" | tr . - 0-1-6 显然,这不会创建文件名,我也不知道如何合并这两个文件名(与echo或touch合并?)我不确定这是否是替换字符串的最佳方法,我尝试使用sed,但无法使其工作。如果有人对如何创建一个文件和使用co

我正在编写一个gitlab ci脚本,该脚本将采用提交标记(例如:0.1.6),并使用它创建一个文件。但是,文件名不能有“.”,我需要将其替换为“-”。(新文件名为“0-1-6”)

我一直在玩弄以下内容:

$ string="0.1.6"
$ echo "$string" | tr . -
0-1-6
显然,这不会创建文件名,我也不知道如何合并这两个文件名(与echo或touch合并?)我不确定这是否是替换字符串的最佳方法,我尝试使用sed,但无法使其工作。如果有人对如何创建一个文件和使用commit标记用替换字符命名它有什么建议,我将非常感激


谢谢。

您可以用

touch $(echo "$string" | tr . -)
"${string//./-}"
所以你可以

touch "${string//./-}"

我至少找到了一种方法,但我愿意接受建议<代码>$echo$string 0.1.6$touch`echo$string | tr.-`$ls 0-1-6