在 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
我是 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