OPTIMIZATION: Replace 12 basename calls with bash parameter expansion
Reduces command substitution overhead by using bash parameter expansion
${var##*/} instead of $(basename "$var") for extracting filenames.
Replaced instances (12 total):
1. Line 1458: SCAN_DIR basename in standalone scan header
2. Line 1678: SCAN_DIR basename in summary report header
3. Line 2321: SCAN_DIR basename in scan ID display
4. Line 2330: SCAN_DIR basename in completion message
5. Line 2852: $dir basename in session enumeration loop
6. Line 2927: $dir basename in session status loop
7. Line 2955: $dir basename in session deletion message
8. Line 2979: $selected_dir basename in session selection
9. Line 3346: $dir basename in session list display
10. Line 3381: $selected_dir basename in session info display
11. Line 3484: $scan_dir basename in report generation
12. Line 3347: Bonus: Replaced echo | sed with ${var#pattern}
Performance Impact:
- Eliminates 12 subprocess calls per execution
- bash parameter expansion is O(1), no fork overhead
- Each basename call requires subprocess creation/destruction
Status: ✓ All 12 basename calls optimized, syntax validated
This commit is contained in:
@@ -1455,7 +1455,7 @@ clear
|
||||
echo "========================================"
|
||||
echo "Standalone Malware Scanner"
|
||||
echo "========================================"
|
||||
echo "Session: $(basename "$SCAN_DIR")"
|
||||
echo "Session: ${SCAN_DIR##*/}"
|
||||
echo "Started: $(date)"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
@@ -1675,7 +1675,7 @@ fi
|
||||
echo "=========================================="
|
||||
echo "Malware Scan Summary Report"
|
||||
echo "=========================================="
|
||||
echo "Session: $(basename "$SCAN_DIR")"
|
||||
echo "Session: ${SCAN_DIR##*/}"
|
||||
echo "Started: $(date)"
|
||||
echo "Scanners: ${available_scanners[*]}"
|
||||
echo "Paths: ${#SCAN_PATHS[@]}"
|
||||
@@ -1856,7 +1856,7 @@ for scanner in "${available_scanners[@]}"; do
|
||||
# Try to get current file being scanned (FIXED Issue 5A: simpler, more robust pattern)
|
||||
current_file=$(grep -oE '\./[^ ]+|/[^ ]+' "$LOG_DIR/clamav.log" 2>/dev/null | tail -1)
|
||||
if [ -n "$current_file" ]; then
|
||||
filename=$(basename "$current_file" 2>/dev/null || echo "...")
|
||||
filename=${current_file##*/}
|
||||
|
||||
# Only update display when filename changes
|
||||
if [ "$filename" != "$last_filename" ]; then
|
||||
@@ -2318,7 +2318,7 @@ else
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Scan ID: $(basename "$SCAN_DIR")"
|
||||
echo "Scan ID: ${SCAN_DIR##*/}"
|
||||
} > "$client_report_file"
|
||||
fi
|
||||
|
||||
@@ -2327,7 +2327,7 @@ clear
|
||||
echo "=========================================="
|
||||
echo -e "${GREEN}Malware Scan Complete!${NC}"
|
||||
echo "=========================================="
|
||||
echo "Session: $(basename "$SCAN_DIR")"
|
||||
echo "Session: ${SCAN_DIR##*/}"
|
||||
echo "Completed: $(date)"
|
||||
echo ""
|
||||
echo "Results saved to:"
|
||||
@@ -2849,7 +2849,7 @@ check_standalone_status() {
|
||||
local error_count=0
|
||||
|
||||
for dir in "${standalone_dirs[@]}"; do
|
||||
local session_name=$(basename "$dir")
|
||||
local session_name=${dir##*/}
|
||||
|
||||
# Check if still running by looking for bash process executing scan.sh
|
||||
# Use pgrep with exact match to avoid false positives from viewers/editors
|
||||
@@ -2924,7 +2924,7 @@ delete_standalone_sessions() {
|
||||
# List sessions with status
|
||||
local i=1
|
||||
for dir in "${standalone_dirs[@]}"; do
|
||||
local session_name=$(basename "$dir")
|
||||
local session_name=${dir##*/}
|
||||
local status="completed"
|
||||
|
||||
if pgrep -f "bash $dir/scan.sh" > /dev/null 2>&1 || [ -f "$dir/.scan_running" ]; then
|
||||
@@ -2952,7 +2952,7 @@ delete_standalone_sessions() {
|
||||
local deleted=0
|
||||
for dir in "${standalone_dirs[@]}"; do
|
||||
if ! pgrep -f "$dir/scan.sh" > /dev/null 2>&1; then
|
||||
echo "Deleting: $(basename "$dir")"
|
||||
echo "Deleting: ${dir##*/}"
|
||||
rm -rf "$dir"
|
||||
deleted=$((deleted + 1))
|
||||
fi
|
||||
@@ -2976,7 +2976,7 @@ delete_standalone_sessions() {
|
||||
fi
|
||||
|
||||
local selected_dir="${standalone_dirs[$((delete_choice-1))]}"
|
||||
local session_name=$(basename "$selected_dir")
|
||||
local session_name=${selected_dir##*/}
|
||||
|
||||
# Check if running
|
||||
if pgrep -f "$selected_dir/scan.sh" > /dev/null 2>&1; then
|
||||
@@ -3343,8 +3343,8 @@ view_scan_results() {
|
||||
# List sessions
|
||||
local i=1
|
||||
for dir in "${standalone_dirs[@]}"; do
|
||||
local session_name=$(basename "$dir")
|
||||
local scan_date=$(echo "$session_name" | sed 's/malware-//')
|
||||
local session_name=${dir##*/}
|
||||
local scan_date=${session_name#malware-}
|
||||
|
||||
# Check if still running
|
||||
local status="completed"
|
||||
@@ -3378,7 +3378,7 @@ view_scan_results() {
|
||||
|
||||
local selected_dir="${standalone_dirs[$((session_choice-1))]}"
|
||||
echo ""
|
||||
echo "Session: $(basename $selected_dir)"
|
||||
echo "Session: ${selected_dir##*/}"
|
||||
echo "Location: $selected_dir"
|
||||
echo ""
|
||||
|
||||
@@ -3481,7 +3481,7 @@ generate_client_report() {
|
||||
fi
|
||||
|
||||
# Extract scan info
|
||||
local session_name=$(basename "$scan_dir")
|
||||
local session_name=${scan_dir##*/}
|
||||
local scan_date=$(grep "Started:" "$summary_file" | head -1 | sed 's/Started: //' || echo "Unknown")
|
||||
local scan_paths=$(sed -n '/^Paths:/,/^$/p' "$summary_file" | tail -n +2 | grep -v "^$" | tr '\n' ', ' | sed 's/, $//' || echo "/")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user