gpt4 book ai didi

linux - 从数组中排除字符串项

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:10 25 4
gpt4 key购买 nike

我有一个脚本,我想从第二个列表中指定的数组中删除项目,我有以下代码但它不起作用:

db_exclude=( 'information_schema' 'mysql' )

databases=$(/usr/bin/mysql --defaults-extra-file=/etc/unimicrosys/sqlbackup/my.cnf -e 'show databases' -s --skip-column-names)
length=${#databases[@]}

for exclude in $db_exclude[@]; do
for (( i=0; i<$length; i++ )); do
echo $i
if [[ databases[$i] = $exclude ]]; then
unset $databases[$i];
fi;
done
done

最佳答案

我无法检查 mysql 命令是否正在生成一个数组,但是如果数据库设置为一个数组,这会起作用

db_exclude=( 'information_schema' 'mysql' )

databases=( 'aaaa' 'information_schema' 'bbb' 'mysql' 'ccc' )

length=${#databases[@]}

for exclude in ${db_exclude[@]}; do
for (( i=0; i<$length; i++ )); do
echo $i
if [[ ${databases[$i]} = $exclude ]]; then
unset databases[$i];
fi;
done
done

echo ${databases[@]}

我通过使用 bash -x 运行脚本发现了问题,它显示 for 循环只执行一次并且比较的是文本“database[0]”,而不是值。

关于linux - 从数组中排除字符串项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15939192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com