shell
Posted weblinuxstudy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell相关的知识,希望对你有一定的参考价值。
1.获取字符串长度
$#string_name
例如:
#!/bin/bash
str="http://c.biancheng.net/shell/"
echo $#str
运行结果:
29
2.字符串的拼接
在Shell中你不需要使用任何运算符,将两个字符串并排放在一起就能实现拼接,非常简单粗暴。
3.从指定位置开始截取
格式说明
$string: start :length
从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
$string: start
从 string 字符串的左边第 start 个字符开始截取,直到最后。
$string: 0-start :length
从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
$string: 0-start
从 string 字符串的右边第 start 个字符开始截取,直到最后。
$string#*chars
从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
$string##*chars
从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
$string%*chars
从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
$string%%*chars
从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
4.Shell数组定义以及获取数组元素
在 Shell 中,用括号( )来表示数组,数组元素之间用空格来分隔。由此,定义数组的一般形式为:
array_name=(ele1 ele2 ele3 ... elen)
注意,赋值号=两边不能有空格,必须紧挨着数组名和数组元素。
Shell 是弱类型的,它并不要求所有数组元素的类型必须相同,例如:
arr=(20 56 "http://c.biancheng.net/shell/")
Shell 数组的长度不是固定的,定义之后还可以增加元素。
获取数组元素
获取数组元素的值,一般使用下面的格式:
$array_name[index]
其中,array_name 是数组名,index 是下标。
例如:
n=$nums[2]
表示获取 nums 数组的第二个元素,然后赋值给变量 n。
再如:
echo $nums[3]
表示输出 nums 数组的第 3 个元素。
使用@或*可以获取数组中的所有元素,例如:
$nums[*]
$nums[@]
拼接数组
利用@或*,可以将数组扩展成列表,然后使用#来获取数组元素的个数,格式如下:
$#array_name[@]
$#array_name[*]
其中 array_name 表示数组名。两种形式是等价的,选择其一即可。
拼接数组的思路是:先利用@或*,将数组扩展成列表,然后再合并到一起。具体格式如下:
array_new=($array1[@] $array2[@])
array_new=($array1[*] $array2[*])
两种方式是等价的,选择其一即可。其中,array1 和 array2 是需要拼接的数组,array_new 是拼接后形成的新数组。
删除数组元素
在 Shell 中,使用 unset 关键字来删除数组元素,具体格式如下:
unset array_name[index]
其中,array_name 表示数组名,index 表示数组下标。
如果不写下标,而是写成下面的形式:
unset array_name
那么就是删除整个数组,所有元素都会消失。
以上是关于shell的主要内容,如果未能解决你的问题,请参考以下文章