Bash 为什么两个elif状态虽然相似,但行为却不同?
出于某种原因,此elif语句有效 elif[$muteStat=='no'];然后 而这 elif[$muteStat=='no'];然后 返回此错误 ./volumeControl.sh:第34行:[否:未找到命令 为什么会这样 更新:在映像中,未注释语句返回错误 代码:Bash 为什么两个elif状态虽然相似,但行为却不同?,bash,Bash,出于某种原因,此elif语句有效 elif[$muteStat=='no'];然后 而这 elif[$muteStat=='no'];然后 返回此错误 ./volumeControl.sh:第34行:[否:未找到命令 为什么会这样 更新:在映像中,未注释语句返回错误 代码: 假定$muteState的值为no。鉴于错误消息抱怨命令[no all one word not found,括号后的空格似乎不是简单的空格 查看脚本的字符代码:od-cscript.sh并查找有趣的字符。实际上,由于它只是
假定$muteState的值为no。鉴于错误消息抱怨命令[no all one word not found,括号后的空格似乎不是简单的空格 查看脚本的字符代码:od-cscript.sh并查找有趣的字符。实际上,由于它只是第34行,请尝试sed-n34pscript.sh | od-c 此外,[命令中的操作数会进行分词和文件名生成,因此应引用变量
if [ "$muteStat" = yes ] ...
:
elif [ "$muteStat" = no ] ...
此外,==运算符是对[]的bash扩展,因此如果您使用的是bash,那么最好使用[[
此外,数值比较使用不同的运算符:[$-eq 1]]您有完整的示例吗?请提供更多的上下文。如果可能的话,这意味着周围的代码。我很好奇您正在使用哪个编辑器来编辑您的脚本。目前,我正在使用nano,它最近开始使用linux。感谢您现在查看它!谢谢,302 240出现了,而不是一个普通的空间,它看起来是一个不间断的空间。不知道那是怎么来的,再次感谢你的帮助!
if [ "$muteStat" = yes ] ...
:
elif [ "$muteStat" = no ] ...