|
|
@@ -167,8 +167,10 @@ gen_random_content() {
|
|
|
|
|
|
# 内容来源:文件参数 > 随机生成
|
|
|
CONTENT="${1:-}"
|
|
|
+FILE_MODE=0
|
|
|
if [ -n "$CONTENT" ] && [ -f "$CONTENT" ]; then
|
|
|
mapfile -t LINES < "$CONTENT"
|
|
|
+ FILE_MODE=1
|
|
|
elif [ -n "$CONTENT" ] && [ "$CONTENT" != "-" ]; then
|
|
|
echo "File not found: $CONTENT, falling back to random content." >&2
|
|
|
gen_random_content
|
|
|
@@ -183,28 +185,9 @@ rand_delay() {
|
|
|
else sleep "$(awk -v lo=80 -v hi=400 'BEGIN{srand(); printf "%.3f", (lo+int(rand()*(hi-lo+1)))/1000}')"; fi
|
|
|
}
|
|
|
|
|
|
-# 假 AI 状态行(随机挑一个)
|
|
|
-STATUS=(
|
|
|
- "analyzing..."
|
|
|
- "thinking..."
|
|
|
- "summarizing decisions..."
|
|
|
- "generating summary..."
|
|
|
- "searching graph..."
|
|
|
- "optimizing implementation..."
|
|
|
- "writing docs..."
|
|
|
- "checking code quality..."
|
|
|
- "syncing progress..."
|
|
|
- "preparing next steps..."
|
|
|
-)
|
|
|
-
|
|
|
run_once() {
|
|
|
- local idx=0 total="${#LINES[@]}"
|
|
|
+ local line
|
|
|
for line in "${LINES[@]}"; do
|
|
|
- idx=$((idx+1))
|
|
|
- [ "$SILENT" = "0" ] && [ $((RANDOM % 6)) -eq 0 ] && {
|
|
|
- printf "\r\033[K%s" "${STATUS[$((RANDOM % ${#STATUS[@]}))]}"
|
|
|
- rand_delay
|
|
|
- }
|
|
|
if [ "$TYPE_EFFECT" = "1" ]; then
|
|
|
local i
|
|
|
for ((i=0; i<${#line}; i++)); do printf "%s" "${line:i:1}"; rand_delay; done
|
|
|
@@ -220,6 +203,8 @@ run_once() {
|
|
|
n=0
|
|
|
while [ "$LOOP_TIMES" -eq 0 ] || [ "$n" -lt "$LOOP_TIMES" ]; do
|
|
|
n=$((n+1))
|
|
|
+ # 每轮重新生成随机内容(避免内容固定导致反复重复);文件模式则用固定内容
|
|
|
+ [ "$FILE_MODE" = "0" ] && gen_random_content
|
|
|
run_once
|
|
|
done
|
|
|
exit 0
|