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



我是bash脚本的新手,试图在字符串数组输出中去掉引号。

DATABASES=(demo_db1 demo_db2);
for DB_NAME in “${DATABASES[@]}”; 
do
echo ${DB_NAME}
done

输出:

“demo_db1
demo_db2
demo_db3”

如何忽略输出中的引号?

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

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

相关内容

  • 没有找到相关文章

最新更新