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
相关产品推荐
相关产品推荐

