diff --git a/tools/push3-evolution/evolve.sh b/tools/push3-evolution/evolve.sh index 8833080..7595d5b 100755 --- a/tools/push3-evolution/evolve.sh +++ b/tools/push3-evolution/evolve.sh @@ -380,7 +380,7 @@ PYEOF log " diverse-seeds: sampling up to $POPULATION candidates from pool ($POOL_COUNT available)" while IFS= read -r POOL_FILE && [ "$VARIANT_IDX" -lt "$POPULATION" ]; do - CAND_FILE="$GEN_DIR/candidate_$(printf '%03d' $VARIANT_IDX).push3" + CAND_FILE="$GEN_DIR/candidate_$(printf '%03d' "$VARIANT_IDX").push3" cp "$POOL_FILE" "$CAND_FILE" printf '0\n' > "${CAND_FILE%.push3}.ops" VARIANT_IDX=$((VARIANT_IDX + 1)) @@ -402,7 +402,7 @@ PYEOF || fail "seed-gen-cli.ts failed to generate variants" while IFS= read -r VARIANT_FILE && [ "$VARIANT_IDX" -lt "$POPULATION" ]; do - CAND_FILE="$GEN_DIR/candidate_$(printf '%03d' $VARIANT_IDX).push3" + CAND_FILE="$GEN_DIR/candidate_$(printf '%03d' "$VARIANT_IDX").push3" cp "$VARIANT_FILE" "$CAND_FILE" printf '0\n' > "${CAND_FILE%.push3}.ops" VARIANT_IDX=$((VARIANT_IDX + 1)) @@ -411,7 +411,7 @@ PYEOF # Fill any remaining slots with mutations of the seed while [ "$VARIANT_IDX" -lt "$POPULATION" ]; do - CAND_FILE="$GEN_DIR/candidate_$(printf '%03d' $VARIANT_IDX).push3" + CAND_FILE="$GEN_DIR/candidate_$(printf '%03d' "$VARIANT_IDX").push3" MUTATED=$(run_mutate_cli mutate "$SEED" "$MUTATION_RATE") \ || fail "Failed to mutate seed for fallback candidate $VARIANT_IDX" printf '%s\n' "$MUTATED" > "$CAND_FILE" @@ -612,7 +612,7 @@ PYEOF done < <(py_top_n "$ELITES" "$SCORES_FILE") for ELITE_FILE in "${ELITE_FILES[@]}"; do - DEST="$NEXT_GEN_DIR/candidate_$(printf '%03d' $NEXT_IDX).push3" + DEST="$NEXT_GEN_DIR/candidate_$(printf '%03d' "$NEXT_IDX").push3" cp "$ELITE_FILE" "$DEST" printf '0\n' > "${DEST%.push3}.ops" NEXT_IDX=$((NEXT_IDX + 1)) @@ -629,7 +629,7 @@ PYEOF # First half of remaining: mutate random survivors for _i in $(seq 1 $HALF); do SUR="${SURVIVOR_FILES[$((RANDOM % ${#SURVIVOR_FILES[@]}))]}" - DEST="$NEXT_GEN_DIR/candidate_$(printf '%03d' $NEXT_IDX).push3" + DEST="$NEXT_GEN_DIR/candidate_$(printf '%03d' "$NEXT_IDX").push3" if MUTATED=$(run_mutate_cli mutate "$SUR" "$MUTATION_RATE" 2>/dev/null); then printf '%s\n' "$MUTATED" > "$DEST" printf '%d\n' "$MUTATION_RATE" > "${DEST%.push3}.ops" @@ -646,7 +646,7 @@ PYEOF for _i in $(seq 1 $REMAINING); do SUR_A="${SURVIVOR_FILES[$((RANDOM % ${#SURVIVOR_FILES[@]}))]}" SUR_B="${SURVIVOR_FILES[$((RANDOM % ${#SURVIVOR_FILES[@]}))]}" - DEST="$NEXT_GEN_DIR/candidate_$(printf '%03d' $NEXT_IDX).push3" + DEST="$NEXT_GEN_DIR/candidate_$(printf '%03d' "$NEXT_IDX").push3" if CROSSED=$(run_mutate_cli crossover "$SUR_A" "$SUR_B" 2>/dev/null); then printf '%s\n' "$CROSSED" > "$DEST" printf '0\n' > "${DEST%.push3}.ops"