找回密码
 注册
关于网站域名变更的通知
查看: 265|回复: 1
打印 上一主题 下一主题

shell 如何实现i++操作以及字符串截取操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-16 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这几天有个bug缠绕了我半天,于是就有了本文章。
( o1 g7 o- y2 B: X; W/ p% E9 l
5 P% B1 p: Q, W. B, L3 a, ^触摸屏因为加了个笔记本键盘后不能用了,摘掉笔记本键盘后,触摸屏又可以用了,真是见鬼了。
1 m9 H' ~# _  ?. ]) a
$ z$ j2 w% w- B稍微研究一看,原来是加了笔记本键盘后导致TP驱动的设备节点改变了,比如说,以前是event4,加了笔记本键盘后event6,导致应用程序使用的设备节点跟TP驱动不匹配。
7 p( |- u% h0 @; F5 e  H# h  M; j' W& Q/ _2 K
于是,我就纳闷了,以前的方法是在编译的时候写死了,比如配置为4了,运行的时候就是设置为4,不变了,其实这是有一定风险的,例如刚才说的例子。那么,怎么改呢?能不能在允许的时候判断出TP设备节点是哪个呢?答案是可以的。) F2 Z, c. l4 u
' i5 u& p5 t- J' E) O7 M$ A, u$ N
在添加自动获取TP的event_num方案时,遇到了一点点问题:
3 T8 _; Y) m, ]  X4 C5 _  o
) \: b7 X0 C3 ?) H一、在遍历设备节点时候,怎么记录下event_num,C语言很简单啊,i++,但是shell里面不能这么做。; ?/ E) J% L5 [
7 m% h% a0 y4 s* a+ a
二、怎么截获字符串的前几个字符?( d; t6 u  I' |

8 h5 [" q8 Q% Z: C0 L
% t- S8 c) x+ e: J4 o; P8 p+ f1 M& o# }; w- _6 m& z
先解决第一个问题,在网上搜了一下,发现有个人写的很好,这里引用一下:3 W  t% O3 J; z+ D
1 s- L( |0 ]3 T; H* N; D
a=1
8 }' o1 H. A! n" Aa=$(($a+1))
, P6 U! ]0 i! ca=$[$a+1]
/ R( ?& ?# C5 P5 q6 T9 T/ Ga=`expr $a + 1`0 t; D7 A' Z. z2 k
let a++' E( }% r* l& f  E
let a+=1
0 H9 b, S* `+ D( L- y; ~) }这几种方法都可以实现i++操作,其中我在实际中使用了 let a++% O+ d7 o/ X. V4 `$ l0 |

, M3 N# _; X  ~% v' S0 r) S. W' Q- G# y8 _3 t4 D
第二个问题的方法其实也很多,我这里只说一种容易记住的:
6 x# ~. C8 K8 a! ~
% r5 f4 u: X  s3 Q; x例如:有个字符串变量string=abcdefgh,我需要截取前面4个字符,那么shell应该怎么实现?5 o5 q7 u: [/ X
& j7 x3 K  j; `9 \. r
1 k, q% l/ X+ H* S2 p
string="abcdefgh"' G, u6 u: P7 @( L. x& y
cut_string=`echo $string|cut -c 1-4`/ c: S: v# o3 O" f. M$ K9 I
结果:cut_string=abcd
# A: `1 f/ P/ l& x7 E" c; J: v
% K/ ?- L/ a% R- g9 s* z以上2个问题是在实际解决问题的时候遇到的,虽然是不起眼的技术点,慢慢积累还是有用的。
/ G/ L0 u7 `8 ]  r2 u; ^/ L$ Z
- ~, B/ p, S: w- E古语云:不积跬步,无以至千里;不积小流,无以成江海。1 g( ?/ J$ v8 ]6 C/ R+ s
- [$ |( W4 j+ D

. P) W* I# c- [4 x4 e6 T: Y1 S3 y
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-16 18:56 | 只看该作者
    shell 如何实现i++操作以及字符串截取操作
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-25 16:43 , Processed in 0.171875 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表