You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写数据格式化bash脚本如何实现循环请求用户输入文件名直到匹配

Bash循环请求用户输入文件名的实现方案

以下是符合需求的完整实现:

#!/bin/bash

target_file=""

while true; do
    read -p "请输入待处理的数据文件名: " input_file
    if [ -f "$input_file" ]; then
        target_file="$input_file"
        echo "匹配到有效文件:$target_file"
        break
    else
        echo "错误:不存在文件 $input_file,请重新输入" >&2
    fi
done

# 后续数据格式化逻辑可直接使用$target_file变量
echo "正在执行$target_file的数据格式化流程..."
# 在这里追加你原有的数据格式化命令

实现说明

  • 采用无限while循环持续接收用户输入,只有当输入的路径对应普通文件存在时才会跳出循环,执行后续逻辑
  • 错误提示默认输出到stderr,符合原有设计要求
  • 所有变量调用都包裹双引号,兼容包含空格、特殊符号的文件名
  • 如果你需要仅匹配当前工作目录下的文件,不允许用户输入绝对/相对路径,可以将校验规则修改为[ -f "./${input_file}" ]
  • 如果你需要支持匹配目录、软链接等其他文件类型,可以将-f校验参数替换为-e(仅校验路径存在,不限制类型)

内容的提问来源于stack exchange,提问作者physgeo19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:45:05