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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这几天有个bug缠绕了我半天,于是就有了本文章。
& h0 M' Q0 o" {( A1 V6 Q  k) _) D: T. `- T  B
触摸屏因为加了个笔记本键盘后不能用了,摘掉笔记本键盘后,触摸屏又可以用了,真是见鬼了。
$ N$ w0 b$ _3 o4 a# r' X6 T. B) x$ U( J6 }) d& [: u
稍微研究一看,原来是加了笔记本键盘后导致TP驱动的设备节点改变了,比如说,以前是event4,加了笔记本键盘后event6,导致应用程序使用的设备节点跟TP驱动不匹配。$ f9 T" @8 ~$ X( o( `+ D# x
: j- {7 C) ~. y. v
于是,我就纳闷了,以前的方法是在编译的时候写死了,比如配置为4了,运行的时候就是设置为4,不变了,其实这是有一定风险的,例如刚才说的例子。那么,怎么改呢?能不能在允许的时候判断出TP设备节点是哪个呢?答案是可以的。
% J0 o$ ^0 b$ x' Z8 t; S* a" X9 I# Q
在添加自动获取TP的event_num方案时,遇到了一点点问题:
8 s2 z& X( j4 k  T$ Q8 B
* O5 @* ?1 H5 _( _/ b& S9 M! k3 |5 G一、在遍历设备节点时候,怎么记录下event_num,C语言很简单啊,i++,但是shell里面不能这么做。
, E- z& M1 H- q5 S( x, h; \! M8 f) @1 t% W% N- m
二、怎么截获字符串的前几个字符?. b, T* x& h0 D2 E0 d! y

- H( e* h6 o$ Q. q* E- K5 f) L. o& G/ Y; O

" x9 j' x3 Q. x) `( C/ T先解决第一个问题,在网上搜了一下,发现有个人写的很好,这里引用一下:
- ]" Z; k* t: g, i
5 h; {) x/ t  c0 Q0 \a=10 x1 r4 e2 \, s
a=$(($a+1))
, m7 g) f& t, }. p) f; n5 ~, Ca=$[$a+1]" S" b2 l" z% E8 N
a=`expr $a + 1`( q9 Z" m/ B# B! ^
let a++
5 p4 \/ j8 [( l3 g2 P( nlet a+=1& @9 V+ W4 c. j) l6 E2 `# u. L
这几种方法都可以实现i++操作,其中我在实际中使用了 let a++% @, E( q' j/ A9 ?* B4 V& U" c

2 P* |2 r/ l& S* ?- M0 n' h# W7 x$ }; C/ v5 M
第二个问题的方法其实也很多,我这里只说一种容易记住的:5 r5 m  ]; n" {( [0 L$ I
% e! F! j' k; T9 o
例如:有个字符串变量string=abcdefgh,我需要截取前面4个字符,那么shell应该怎么实现?
4 j4 I* Q2 o9 e' x) Z' U6 b
( ~! e' D/ n6 ?$ g
; d$ B1 ?& |2 n2 N' q% T+ M% vstring="abcdefgh"
; g/ l( e1 k3 {: c2 Lcut_string=`echo $string|cut -c 1-4`
* R6 `) a2 d6 q; a3 L, y0 l结果:cut_string=abcd
4 O" U6 H" T2 |. t
8 n) H8 N5 m9 s4 x# N5 e以上2个问题是在实际解决问题的时候遇到的,虽然是不起眼的技术点,慢慢积累还是有用的。
7 C( a6 G4 {% o: e  [. C* U, M* |6 V) {. O3 V$ L8 v) W
古语云:不积跬步,无以至千里;不积小流,无以成江海。
0 ~/ Y1 L% R2 B) J$ ^
" m  l" t- S/ M/ q+ e* [
; U  o* z2 U3 R" ]
  • 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-26 11:42 , Processed in 0.203125 second(s), 23 queries , Gzip On.

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

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

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