如何实现交互式修改脚本参数以生成自定义输出文件名
如何实现交互式修改脚本参数以生成自定义输出文件名
我来给你梳理下怎么实现这个交互式修改输出文件名的需求,用bash脚本就能轻松搞定,步骤很清晰:
1. 先搞定基础的参数接收与默认文件名生成
首先脚本得能接住你传入的两个参数(比如foo和bar),然后按照规则生成默认的输出文件名,比如你说的foo_bar1。这部分逻辑很简单,直接用位置参数$1和$2就能拿到输入的参数。
2. 加入交互式编辑功能
核心是用read命令的-e选项,它允许用户在命令行编辑默认的文件名——不用从头输入整个长文件名,直接修改默认值里的部分内容就行,比如把1改成_2,完美匹配你的需求。
完整示例脚本
#!/bin/bash # 检查是否传入了两个参数 if [ $# -ne 2 ]; then echo "用法: $0 <参数1> <参数2>" exit 1 fi # 生成默认输出文件名 default_filename="${1}_${2}1" # 提示用户编辑文件名,read -e支持交互式编辑 echo "默认输出文件名是: $default_filename" read -e -p "请修改文件名(直接回车使用默认值): " custom_filename # 如果用户没输入内容,就用默认文件名 if [ -z "$custom_filename" ]; then custom_filename=$default_filename fi # 确认最终文件名 echo "最终输出文件名将是: $custom_filename" # 这里可以添加后续的脚本逻辑,比如写入内容到这个文件 echo "测试内容" > "$custom_filename" echo "已创建文件: $custom_filename"
怎么用这个脚本
- 把上面的代码保存成
scriptname.sh,然后给它加执行权限:chmod +x scriptname.sh - 运行脚本:
./scriptname.sh foo bar - 这时会看到提示,直接编辑默认的
foo_bar1就行——比如删掉1,改成_2,回车确认,脚本就会用修改后的foo_bar_2作为输出文件名啦!
这个方法特别适合长文件名的场景,用户只需要修改默认值里的部分字符,不用重新敲一遍长长的名字,效率高很多~
备注:内容来源于stack exchange,提问作者udippel
相关产品推荐
相关产品推荐

