如何删除 .从 Bash 字符串的开头开始并将结果写入变量?

如何删除 .从 Bash 字符串的开头开始并将结果写入变量?

我目前正在编写一个 shell 函数,它将帮助我编写它,以便能够.从文件夹名称的开头删除 a (将文件夹名称从隐藏文件夹的名称更改为非隐藏文件夹的名称)。文件夹名称存储在变量 中$CWD,该变量本身使用以下方法求值:

CWD=${PWD##*/}

我想调用等于的变量,但其开头$CWD不带。目前我正在尝试使用 来做到这一点,但我愿意接受解决此问题的任何解决方案。这就是我一直在尝试的:.$GWDsed

GWD=$(sed -i 's/.*//' $CWD)

我也尝试过用 替换'这个表达式,"并且我尝试-i用替换-e。但这不断返回错误:

sed: can't read .atom: No such file or directory

CWD='.atom'此刻我在哪里。

答案1

GWD="${CWD#.}"

您的 sed 命令不起作用,因为它想读取文件定义在$CWD.你会想要echo $CWD | sed 's/^[\.]//'

你也可能对此有兴趣这另一个问题这将帮助你变得CWD更加坚强。

相关内容