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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这几天有个bug缠绕了我半天,于是就有了本文章。
8 W7 I7 a3 m  @! F9 z( b. z7 U3 R5 h$ C  L
触摸屏因为加了个笔记本键盘后不能用了,摘掉笔记本键盘后,触摸屏又可以用了,真是见鬼了。, i/ p& @/ B9 K9 o- ?  x
5 f% i7 h$ [& `3 q2 k
稍微研究一看,原来是加了笔记本键盘后导致TP驱动的设备节点改变了,比如说,以前是event4,加了笔记本键盘后event6,导致应用程序使用的设备节点跟TP驱动不匹配。# }1 {" j- a$ V  m+ z
% i. b1 x: f' h7 I
于是,我就纳闷了,以前的方法是在编译的时候写死了,比如配置为4了,运行的时候就是设置为4,不变了,其实这是有一定风险的,例如刚才说的例子。那么,怎么改呢?能不能在允许的时候判断出TP设备节点是哪个呢?答案是可以的。
9 ~5 N5 l3 Z# \  d
1 }1 V: B1 ~4 p% ^- j% J在添加自动获取TP的event_num方案时,遇到了一点点问题:
3 b. `1 N+ b% r$ f& K5 T' ^1 G$ r) [9 q1 l5 F) p! z% ]& w+ q
一、在遍历设备节点时候,怎么记录下event_num,C语言很简单啊,i++,但是shell里面不能这么做。0 L4 c8 i" l4 a% p" `; ?9 t: o! Z

% T4 g9 h8 o; e" m二、怎么截获字符串的前几个字符?& P( C- {+ t1 m
7 o4 e: n' R  L: }2 P% F3 u
7 \" w/ {( D" `5 s
9 x0 x7 r0 _: p0 Z; p
先解决第一个问题,在网上搜了一下,发现有个人写的很好,这里引用一下:
) n( Q( B- v4 \1 M$ B2 W9 g
4 W2 v' L, L: G2 @6 Ra=1# x3 v0 n2 y+ b' E0 u1 n  B( V6 n
a=$(($a+1))2 v  R) Z) w) K
a=$[$a+1], @/ V: r, f% f
a=`expr $a + 1`  O7 K- a/ K/ r; e
let a++' I. T9 B2 ?" {; }3 d* p
let a+=19 a% K" L: h# c9 n5 u
这几种方法都可以实现i++操作,其中我在实际中使用了 let a++* O; _4 B' m! x1 F1 c7 p# D$ h
" o1 L3 y: D- `9 m7 P! g5 g: H

: O2 U1 X4 u+ J* f1 j5 Y1 l6 h第二个问题的方法其实也很多,我这里只说一种容易记住的:0 w4 |; W7 Y8 F  M4 r* s# S
& ^& t( P1 K; o* u7 V
例如:有个字符串变量string=abcdefgh,我需要截取前面4个字符,那么shell应该怎么实现?- K$ Z9 V" `3 M3 ^7 ]/ u, h. d
! y8 V: b. o6 u, B, ~% M1 {' X1 l
8 {2 q0 p9 D7 F
string="abcdefgh"
$ G/ P5 [* t: Ycut_string=`echo $string|cut -c 1-4`
9 Z% {$ b9 ~+ G$ A& _  I# f结果:cut_string=abcd
  [( z$ @1 W; i1 q+ W4 }5 q& }. f1 k9 s2 y7 P; i/ k
以上2个问题是在实际解决问题的时候遇到的,虽然是不起眼的技术点,慢慢积累还是有用的。- Z& d& [+ {- u" y# ^
, Q6 |! x5 s* b. S  f/ C
古语云:不积跬步,无以至千里;不积小流,无以成江海。
" v! K4 C: U- T' ~* s2 e, v' S' S% L( E8 Z

2 R! b, ?; P5 y9 o$ F! a! D5 H
  • 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 21:23 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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