break在括号中失效问题

今天发现了一个shell问题,break在脚本里面会失效,比如下面这个脚本:
#!/bin/bash
while : ;do
   ewch 1 &>/dev/null||(echo 2 && break)
   echo 3 && break
done

这个的执行结果是先打印2 和3 然后再break,我不确定是不是我的逻辑有问题,求各位大大指点下

答案由酷!学园 dark 大神提供:

這個我會 ... 我知道 ...

小括號是 "子程序"
大括號才延續當前程序

另外 ..
你將這幾行打在指令列 , 執行後再用方向鍵 "上" 叫出來看

while : ;do    ewch 1 &>/dev/null||(echo 2 && break);    echo 3 && break; done
小括號裡猶如一個指令一般

while : ;do ewch 1 &>/dev/null||{ echo 2 && break; };    echo 3 && break; done
前大括號後面要空格 , 後大括號前要分號斷行

时间: 2024-10-05 04:22:43

break在括号中失效问题的相关文章

colspan在浏览器中失效的问题

<table border="1" style="border-collapse:collapse;"> <tr> <td>def</td> <td>ghi</td> </tr> <tr style="display: block;"> <td colspan="2">abc</td> </tr>

shell中如何取括号中的字符

1. 使用grep(结果带括号,不知道有没有办法仅把括号中的内容匹配出来) $a='abc[edg]adfirpqu' $echo $a|grep -o '\[.*\]' #中括号的处理需要转义 [edg] $b='abc(edg)adfirpqu' $echo $b|grep -o '(.*)' (edg) 2. 使用cut $a='abc[edg]adfirpqu' $echo $a|cut -d '[' -f2|cut -d ']' -f1 edg $b='abc(edg)adfirpqu

js代码从页面移植到文件中失效或js代码修改后不起作用的解决办法

最近在做关于网站的项目,总是发生这样的问题 写的javascript代码在页面上没有问题,但是将js代码移植到.js的文件中,在页面上进行调用,总是出现失效等错误 另外修改后的js代码,重新刷新网页仍然不起作用 经过大量搜索并经过验证,可以用下面方法来解决 将js代码封装到js文件中失效的原因可能是js文件中存在中文注释,导致在执行的时候中断,在js文件尽量不要写中文注释 修改后的js代码刷新网页后不起效果可能是因为你所用的浏览器使用缓存的问题,可在浏览器中设置取消使用缓存,并删除临时文件,重启

字符串处理之获取所有不在括号中的字符

email: gmail4linus at gmail dot com 字符串处理问题 有一个表达式,其中包含不确定数目的括号,如as(sdfsd + sdfs)sdf(sdf-sdf(sdf + sdf))sdf.要求获取所有不在括号中的字符. 实现思想:用栈来实现,遍历字符串,如果遇到左括号(()则向栈中压入(push)一个元素(任意元素),如果遇到右括号())则从栈顶弹出(pop)一个元素,如果遇到非括号(左括号或者右括号)则检测栈中是否为空,若为空则该字符在所有括号之外. Java代码可

中文输入法在vs2010中失效解决方案

这样你就可以用切换输入法的方式,输入中文咯. 后来用了2次发现还是有问题,后来我就直接把输入法的切换改成ctrl+1,后来使用就一直没有问题.总之,解决方案视具体情况解决.中文输入法在vs2010中失效解决方案

man page里面函数后面的括号中的数字代表的含义。

Linux下最通用的领域及其名称及说明如下:领域 名称 说明 1 用户命令, 可由任何人启动的. 2 系统调用, 即由内核提供的函数. 3 例程, 即库函数. 4 设备, 即/dev目录下的特殊文件. 5 文件格式描述, 例如/etc/passwd. 6 游戏, 不用解释啦! 7 杂项, 例如宏命令包.惯例等. 8 系统管理员工具, 只能由root启动. 9 其他(Linux特定的), 用来存放内核例行程序的文档. n 新文档, 可能要移到更适合的领域. o 老文档, 可能会在一段期限内保留.

select into 在mysql中失效的替换办法

select into 语法:将一张表的内容复制到另一张表 SELECT *INTO newtable [IN externaldb]FROM table1; 在mysql中这个语法失效,应该用下面的语法: create temporary table new_table_name (select * from old_table_name);

eclipse 对齐行号在括号中显示和字体调整

笔者 : 本笃庆军 一.括号对齐:指和C/C++里面一样.上下括号对齐~~~ 第一步:Project->preferences->Java->Code Style->Formatter 第二步:点击右边的New在profile name 里面随便填写一个名字.点击ok 选择标签页Braces 把全部的Same line 统统(除了最后一个Array initializer)改成Next line 保存就可以 二.显示行号: 直接右击编辑框你想显示行号的位置.勾选"显示行号

不能靠眼睛之 KEIL 中失效代码灰暗特性

@2019-02-15 [问题描述] 使用 KEIL(带灰暗特性版本) 查看头文件代码时,其中有依据不同宏定义对应不同执行语句代码部分,依据灰暗特性呈现生效与失效代码,靠眼睛反应就是灰暗呈现为失效代码即其宏定义未定义,这样就主观认为灰暗代码部分不执行,导致在分析调用该头文件的源文件中使用头文件的宏函数时无对应执行代码,与实际调试结果不否,实际结果呈现是执行了该宏函数的执行代码 [分析解决] 见文<C 头文件.宏.编译问题>中宏解释部分 [结论] KEIL 对这种情况的使用无能为力,其作为工具只