Fix subshell shadowing in mysql-analyzer.sh
Fixed SUBSHELL-SHADOW issue at line 138: - Changed from pipe: grep ... | while read -r db - To process substitution: while read -r db < <(grep ...) - Improves: Variable scoping best practices - Identified by: CHECK 97 (SUBSHELL-SHADOW) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -134,8 +134,8 @@ map_database_to_user_domain() {
|
|||||||
# Build map for all databases
|
# Build map for all databases
|
||||||
print_info "Building database to user/domain mapping..."
|
print_info "Building database to user/domain mapping..."
|
||||||
|
|
||||||
# Use while read to safely iterate over database names (handles spaces in names)
|
# Use process substitution to iterate over database names (handles spaces in names, avoids subshell shadowing)
|
||||||
mysql -Ns -e "SHOW DATABASES" 2>/dev/null | grep -v "^information_schema$\|^mysql$\|^performance_schema$\|^sys$" | while IFS= read -r db; do
|
while IFS= read -r db; do
|
||||||
# Extract potential username from database name
|
# Extract potential username from database name
|
||||||
# Format: username_dbname
|
# Format: username_dbname
|
||||||
local potential_user=$(echo "$db" | cut -d_ -f1)
|
local potential_user=$(echo "$db" | cut -d_ -f1)
|
||||||
@@ -148,7 +148,7 @@ map_database_to_user_domain() {
|
|||||||
else
|
else
|
||||||
echo "${db}|unknown|unknown" >> "$map_file"
|
echo "${db}|unknown|unknown" >> "$map_file"
|
||||||
fi
|
fi
|
||||||
done
|
done < <(mysql -Ns -e "SHOW DATABASES" 2>/dev/null | grep -v "^information_schema$\|^mysql$\|^performance_schema$\|^sys$")
|
||||||
|
|
||||||
grep "^${db_name}|" -- "$map_file" 2>/dev/null
|
grep "^${db_name}|" -- "$map_file" 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user