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 "========================================"
|
||||||
echo "Standalone Malware Scanner"
|
echo "Standalone Malware Scanner"
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo "Session: $(basename "$SCAN_DIR")"
|
echo "Session: ${SCAN_DIR##*/}"
|
||||||
echo "Started: $(date)"
|
echo "Started: $(date)"
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -1675,7 +1675,7 @@ fi
|
|||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo "Malware Scan Summary Report"
|
echo "Malware Scan Summary Report"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo "Session: $(basename "$SCAN_DIR")"
|
echo "Session: ${SCAN_DIR##*/}"
|
||||||
echo "Started: $(date)"
|
echo "Started: $(date)"
|
||||||
echo "Scanners: ${available_scanners[*]}"
|
echo "Scanners: ${available_scanners[*]}"
|
||||||
echo "Paths: ${#SCAN_PATHS[@]}"
|
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)
|
# 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)
|
current_file=$(grep -oE '\./[^ ]+|/[^ ]+' "$LOG_DIR/clamav.log" 2>/dev/null | tail -1)
|
||||||
if [ -n "$current_file" ]; then
|
if [ -n "$current_file" ]; then
|
||||||
filename=$(basename "$current_file" 2>/dev/null || echo "...")
|
filename=${current_file##*/}
|
||||||
|
|
||||||
# Only update display when filename changes
|
# Only update display when filename changes
|
||||||
if [ "$filename" != "$last_filename" ]; then
|
if [ "$filename" != "$last_filename" ]; then
|
||||||
@@ -2318,7 +2318,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Scan ID: $(basename "$SCAN_DIR")"
|
echo "Scan ID: ${SCAN_DIR##*/}"
|
||||||
} > "$client_report_file"
|
} > "$client_report_file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2327,7 +2327,7 @@ clear
|
|||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo -e "${GREEN}Malware Scan Complete!${NC}"
|
echo -e "${GREEN}Malware Scan Complete!${NC}"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo "Session: $(basename "$SCAN_DIR")"
|
echo "Session: ${SCAN_DIR##*/}"
|
||||||
echo "Completed: $(date)"
|
echo "Completed: $(date)"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Results saved to:"
|
echo "Results saved to:"
|
||||||
@@ -2849,7 +2849,7 @@ check_standalone_status() {
|
|||||||
local error_count=0
|
local error_count=0
|
||||||
|
|
||||||
for dir in "${standalone_dirs[@]}"; do
|
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
|
# Check if still running by looking for bash process executing scan.sh
|
||||||
# Use pgrep with exact match to avoid false positives from viewers/editors
|
# Use pgrep with exact match to avoid false positives from viewers/editors
|
||||||
@@ -2924,7 +2924,7 @@ delete_standalone_sessions() {
|
|||||||
# List sessions with status
|
# List sessions with status
|
||||||
local i=1
|
local i=1
|
||||||
for dir in "${standalone_dirs[@]}"; do
|
for dir in "${standalone_dirs[@]}"; do
|
||||||
local session_name=$(basename "$dir")
|
local session_name=${dir##*/}
|
||||||
local status="completed"
|
local status="completed"
|
||||||
|
|
||||||
if pgrep -f "bash $dir/scan.sh" > /dev/null 2>&1 || [ -f "$dir/.scan_running" ]; then
|
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
|
local deleted=0
|
||||||
for dir in "${standalone_dirs[@]}"; do
|
for dir in "${standalone_dirs[@]}"; do
|
||||||
if ! pgrep -f "$dir/scan.sh" > /dev/null 2>&1; then
|
if ! pgrep -f "$dir/scan.sh" > /dev/null 2>&1; then
|
||||||
echo "Deleting: $(basename "$dir")"
|
echo "Deleting: ${dir##*/}"
|
||||||
rm -rf "$dir"
|
rm -rf "$dir"
|
||||||
deleted=$((deleted + 1))
|
deleted=$((deleted + 1))
|
||||||
fi
|
fi
|
||||||
@@ -2976,7 +2976,7 @@ delete_standalone_sessions() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local selected_dir="${standalone_dirs[$((delete_choice-1))]}"
|
local selected_dir="${standalone_dirs[$((delete_choice-1))]}"
|
||||||
local session_name=$(basename "$selected_dir")
|
local session_name=${selected_dir##*/}
|
||||||
|
|
||||||
# Check if running
|
# Check if running
|
||||||
if pgrep -f "$selected_dir/scan.sh" > /dev/null 2>&1; then
|
if pgrep -f "$selected_dir/scan.sh" > /dev/null 2>&1; then
|
||||||
@@ -3343,8 +3343,8 @@ view_scan_results() {
|
|||||||
# List sessions
|
# List sessions
|
||||||
local i=1
|
local i=1
|
||||||
for dir in "${standalone_dirs[@]}"; do
|
for dir in "${standalone_dirs[@]}"; do
|
||||||
local session_name=$(basename "$dir")
|
local session_name=${dir##*/}
|
||||||
local scan_date=$(echo "$session_name" | sed 's/malware-//')
|
local scan_date=${session_name#malware-}
|
||||||
|
|
||||||
# Check if still running
|
# Check if still running
|
||||||
local status="completed"
|
local status="completed"
|
||||||
@@ -3378,7 +3378,7 @@ view_scan_results() {
|
|||||||
|
|
||||||
local selected_dir="${standalone_dirs[$((session_choice-1))]}"
|
local selected_dir="${standalone_dirs[$((session_choice-1))]}"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Session: $(basename $selected_dir)"
|
echo "Session: ${selected_dir##*/}"
|
||||||
echo "Location: $selected_dir"
|
echo "Location: $selected_dir"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -3481,7 +3481,7 @@ generate_client_report() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract scan info
|
# 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_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 "/")
|
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