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

Bash脚本read -p定义变量无法正常读取引发条件判断报错如何解决

Bash大小写转换脚本错误修复方案

错误原因总览

[1: command not found报错的核心是Bash中[是内置命令,必须和后续的判断条件、结尾的]之间保留空格,你现有的判断语句没有加空格,导致系统把["$CASE"拼接后的内容识别成了不存在的命令。
除此之外你的脚本还有3处逻辑错误:

  • 错误使用cat "$WORD"读取用户输入的字符串:cat是读取文件内容的命令,$WORD是用户直接输入的文本不是文件名,不需要用cat
  • 小写转换的判断条件和提示不符:你提示用户输入2转小写,但判断条件写的是== "0"
  • 提示语中的双引号嵌套错误,会导致语法异常

修复后的完整代码

#!/bin/bash
read -p "Enter in your sentence, word or phrase: " WORD
read -p "Enter 1 to change the case to UPPER or 2 to change the case to LOWER: " CASE

if [ "$CASE" == "1" ]
then
        echo "$WORD" | tr [:lower:] [:upper:]

elif [ "$CASE" == "2" ]
then
        echo "$WORD" | tr [:upper:] [:lower:]

else
        echo "Please select either '1' for upper or '2' for lower."
fi

关键修改点说明

  • 给判断语句的[后、]前都加了空格,符合Bash语法要求
  • 去掉了冗余的cat和$()包裹,直接把$WORD的内容通过管道传给tr处理
  • 将小写转换的判断条件从== "0"改成了== "2",和用户提示保持一致
  • 把else分支提示语里嵌套的双引号改成单引号,避免语法冲突
  • 脚本开头添加了#!/bin/bash声明,指定运行用的解释器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:45:08