shell字符串去掉双引号
时间: 2023-10-14 14:07:43 浏览: 132
你可以使用以下的方法去掉shell字符串中的双引号:
```bash
# 假设 $str 是包含双引号的字符串
str='"hello world"'
# 使用 tr 命令删除双引号
new_str=$(echo "$str" | tr -d '"')
echo "$new_str" # 输出 hello world
```
这里使用了 tr 命令来删除双引号。tr 命令用于字符替换和删除,在这里我们使用 `-d` 选项删除所有的双引号。
相关问题
makefile 如何把字符串的双引号去掉
Makefile 是一种在 Unix 和类 Unix 系统中用于自动化构建过程的文本文件,它通过规则描述了如何从源代码生成目标文件。如果你想要在 Makefile 中去除字符串中的双引号,通常是在命令行中拼接字符串,这时需要使用反斜杠 `\` 进行转义,因为双引号在 shell 脚本中会被解释。
例如,如果你想创建一个变量 `VAR` 并赋值为包含双引号的字符串,你应该这样做:
```makefile
VAR := "This is a string with \"quotes\""
```
如果你想要将字符串中的双引号替换掉,可以使用 `$(subst)` 函数,但它并不会直接移除双引号,而是将它们替换为另一个字符。如果你想完全移除,可能需要写一个更复杂的脚本或使用其他语言处理字符串。这里是一个简单的例子,展示如何替换:
```makefile
STRING_WITH_QUOTES := "This is a string with \"quotes\""
NO_QUOTES := $(subst ",", "", $(STRING_WITH_QUOTES))
```
在这个例子中,`NO_QUOTES` 将会是 `"This is a string with quotes"`。
假设A="bcd",如何用shell去掉A中的双引号
在Shell中,可以使用双引号或单引号来定义一个字符串。如果一个字符串已经被定义为双引号括起来的形式,可以使用Shell的字符串剥离操作来去掉双引号。
具体方法如下:
```bash
A='"bcd"'
A=${A#\"} # 删除字符串开头的双引号
A=${A%\"} # 删除字符串结尾的双引号
echo $A # 输出 bcd
```
上述代码中,`#`表示从字符串开头开始删除,`%`表示从字符串结尾开始删除。
也可以使用sed命令来去掉双引号,如下所示:
```bash
A='"bcd"'
A=$(echo $A | sed 's/"//g')
echo $A # 输出 bcd
```
上述代码中,`s/"//g`表示用空字符替换所有的双引号。
阅读全文