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

Bash case语句中如何输出选项名称而非编号写入CSV文件

问题原因

你代码中varSel变量存储的是用户输入的原始数字,你已经在case分支内将选项对应的名称赋值给了var1变量,直接输出var1即可写入你需要的名称。

修正方案1(保留原始输入数字)

如果后续逻辑还需要用到用户输入的数字,直接修改最后一行的输出变量即可,完全不影响原有循环逻辑:

#! /bin/bash

while true; do
    echo    "1) sale"
    echo    "2) return"
    
    read -p "Choose your options: " varSel
    case ${varSel} in
    1) var1="sale"; break;;
    2) var1="return"; break;;
    *) echo "请选择1或2的选项";;
    esac
done

# 把原来的$varSel替换为$var1即可
echo $var1 >> logfile.csv

修正方案2(无需额外变量)

如果后续不需要用到用户输入的原始数字,可以直接在case分支中给varSel重新赋值,省掉额外的var1变量:

#! /bin/bash

while true; do
    echo    "1) sale"
    echo    "2) return"
    
    read -p "Choose your options: " varSel
    case ${varSel} in
    # 直接覆盖varSel的值为选项名称
    1) varSel="sale"; break;;
    2) varSel="return"; break;;
    *) echo "请选择1或2的选项";;
    esac
done

echo $varSel >> logfile.csv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:15:06