Linux:用shell如何实现读取一个字符串的第n个字符呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux:用shell如何实现读取一个字符串的第n个字符呢相关的知识,希望对你有一定的参考价值。

如果字符串"abcde",如何读取第4个字符呢?该怎么写

代码如下:

str="/home/gateman"

if [ $str:0:1 = "/"  ]; then

    echo "yes'

fi

$str:0:1} 中0表示从第几个字符开始,1表示截取多长。

Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有:

bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。

sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。

另外还有:ash、 csh、 ksh等。

扩展资料

Linux shell 截取字符变量的前8位:

实现方法有如下几种:

expr substr “$a” 1 8

echo $a|awk ‘print substr(,1,8)’

echo $a|cut -c1-8

echo $

expr $a : ‘\\(.\\\\).*’

echo $a|dd bs=1 count=8 2>/dev/null

按照指定要求分割:

比如获取后缀名

ls -al | cut -d “.” -f2

小结:shell对应字符串的处理方法很多,根据需求灵活选择。

在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。

参考技术A [chengmo@localhost ~]$ test='I love china'
[chengmo@localhost ~]$ echo $test:5
e china
[chengmo@localhost ~]$ echo $test:5:10
e china
$变量名:起始:长度得到子字符串本回答被提问者采纳
参考技术B #!/bin/bash
#Reading chracter from string
STRING=‘abcde’;
echo $STRING:4:1

linux下shell脚本实现串口的读取以及报文的解析

最近在从串口读取报文并判断报文内容是否有效,本来用C++写了一个小程序。奈何板卡的sftp服务老是连不上,于是考虑用shell脚本实现这个功能。用shell脚本实现这些功能面临以下几个问题:

1.命令行如何设置和读取串口?
stty是Linux平台下很好的终端设置工具,可以设置各种终端属性。本质上串口也是Linux系统中终端的一种。所以第一步设置串口的波特率:

stty -F /dev/ttyO1 raw speed 9600
1
然后就是读取串口,在命令行操作时我们用cat命令很容易就读取并从终端打印出了串口信息,但是在脚本中我们希望将一行串口报文读入字符串变量中,于是有下面的代码:

cat /dev/ttyO1 | while read LINE
do
echo LINE
#do something

done

2.如何截取字符串和比较字符串?
str=“hello world”
#截取hello
h=${str:0:5}
#第一个:后面是表示位置;第二个:后面的数字表示字符数量

#字符串的比较有很多种方法,下面是其中的一种
if [ $h == ‘hello’ ]; then
#do something

3.如何在shell脚本中计数
shell脚本中的变量默认都是字符串,所以我们申明变量时要显式的赋值:

num=0
#给num加1
num=expr $num + 1
#判断num是否大于10
if [ $num -ge 10 ]; then
#do somet

以上是关于Linux:用shell如何实现读取一个字符串的第n个字符呢的主要内容,如果未能解决你的问题,请参考以下文章

linux下shell脚本实现串口的读取以及报文的解析

shell脚本:如何显示某个文件的第一行

linux shell读取文件每一行加入用户输入

Linux Shell学习-sed命令详解

linux shell 脚本读取用户输入的参数如何解决?

如何使用linux read命令