在 bash 脚本中删除字符串数组中的引号

Removing quotes in String Array in bash scripting

我是 bash 脚本编写的新手,正在尝试删除字符串数组输出中的引号。

DATABASES=(demo_db1 demo_db2);

for DB_NAME in “${DATABASES[@]}”; 
do
    echo ${DB_NAME}
done

输出:

“demo_db1

demo_db2

demo_db3”

如何忽略输出中的引号?

我将在我的数据库连接字符串中使用它,所以它在下面的示例中给我带来了很多麻烦。

for DB_NAME in “${DATABASES[@]}”; 
do
    connection_url="postgresql://{{username}}:{{password}}@localhost:5432/${DB_NAME}/"
    echo $connection_url
done

输出:

postgresql://{{username}}:{{password}}@localhost:5432/“demo_db1/

postgresql://{{username}}:{{password}}@localhost:5432/demo_db2/

postgresql://{{username}}:{{password}}@localhost:5432/demo_db3”/

提前感谢大家的帮助!

问题是您在 for 循环的 ”${DATABASES[@]}” 中使用的 。您需要使用 "。 尝试以下脚本:

DATABASES=(demo_db1 demo_db2);

for DB_NAME in "${DATABASES[@]}"; 
do
    echo ${DB_NAME}
done

输出:

demo_db1
demo_db2

使用 sed 删除 '"' 个字符:

echo $(echo ${DB_NAME} | sed 's/["“”]//g')  # all flavour of quotes