美文网首页
3.数组、关联数组和别名使用

3.数组、关联数组和别名使用

作者: 不安分的情绪 | 来源:发表于2018-01-18 11:20 被阅读0次

数组作为一种特殊的数据结构在任何一种变成语言中都可以看见,数组在shell中也是非常重要的一部分,它借助索引将多个独立的数据存储为一个集合。

数组

普通数组只能使用整数作为数组的索引值
定义数组Array[key]=value
单行一列值:

# array_pt=(1 2 3 4 5 6) //使用空格进行分割

打印数组

# echo ${array_pt[0]}
1
# echo ${array_pt[1]}
2
# echo ${array_pt[2]}
3
# echo ${array_pt[3]}
4
# echo ${array_pt[5]}
6
# index=4
# echo ${array_pt[$index]}
5

打印数组中的所有值

# echo ${array_pt[*]}
1 2 3 4 5 6
# echo ${array_pt[@]}
1 2 3 4 5 6

删除数组

# unset array_pt[1] //删除数组中的第二个元素
# unset array_pt  //删除整个数组

数组的提取
假如定义了一个数组:array=([0]=one [1]=two [2]=three [3]=four)

# array=([0]=one [1]=two [2]=three [3]=four)
# echo ${array[@]:0}  //提取所有元素
one two three four     
# echo ${array[@]:1}   //提取第一个元素后的所有元素
two three four
# echo ${array[@]:0:2}  //提取第一个元素到第二个元素之前的所有元素
one two
# echo ${array[@]:1:2}
two three

字串删除

# echo ${array[@]:0} //提取所有元素
one two three four

左边开始最短匹配 #``:"t*e",这将匹配到"thre"

# echo ${array[@]#t*e}
one two e four

左边开始最长的匹配##,这将匹配到"three"

# echo ${array[@]##t*e}
one two four

从字符串的结尾开始最短的匹配%

# echo ${array[@]%o}
one tw three four

从字符串的结尾开始最长的匹配

# echo ${array[@]%%o}
one tw three four

字串替换

# echo ${array[@]//o/}  //替换字符串中的o为空白`//`
ne tw three fur

替换字符串前端子串

# echo ${array[@]/#o/k} //替换最前面的o为k`/#`
kne two three four

替换字符串后端子串

# echo ${array[@]/%o/k}  //替换字符串最后端的字符o为k`%o`
one twk three four

关联数组

关联数组从bash 4.0开始被引入,关联数组的索引值可以使用任意的文本。关联数组在很多操作中很有用。
关联数组的声明:

# declare -A array_var

使用内嵌索引-值列表法将元素添加到关联数组:

# array_var=([one]=jerry [two]=john [three]=tom [five]=rex [six]=coco)

打印元素:使用独立的索引-值进行赋值:

# echo ${array_var[one]}
jerry
# echo ${array_var[two]}
john

列出索引:列出索引值的方法也可以用在普通数组上

# echo ${!array_var[*]}
one five six two three

列出所有的元素

# echo ${array_var[*]}
jerry rex coco john tom

别名

别名就是提供一种便捷的方式来完成某些长串命令的操作。省去不必要的麻烦,提高效率。一般可以是函数或者alias命令来实现。

alias举例

alias nginxrestart='/usr/local/webserver/nginx/sbin/nginx -s reload'

这样设置之后以后可以使用nginxrestart这个命令来代替/usr/local/webserver/nginx/sbin/nginx -s reload了。这样设置重启之后就会失效,所以需要将它放入~/.bashrc文件中。

echo 'alias nginxrestart="/usr/local/webserver/nginx/sbin/nginx -s reload"' >> ~/.bashrc 

系统已经定义的别名

# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mg='echo magedu'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

别名转义

有些命令不是总是希望使用别名,可以在命令之前输入反斜杠\来忽略所定义过的别名。

# \command

相关文章

  • 3.数组、关联数组和别名使用

    数组作为一种特殊的数据结构在任何一种变成语言中都可以看见,数组在shell中也是非常重要的一部分,它借助索引将多个...

  • 数组、关联数组与别名使用

    【数组】 普通数组只能使用整数作为数组的索引值 定义数组 格式:array[key]=value 单行一列值: a...

  • Linux shell 学习笔记(未完成)

    终端打印 命令: 玩转变量和环境变量 数学计算 文件描述符及重定向 数组和关联数组 使用别名 获取日期

  • Shell 数组与数学运算

    参考书籍 Linux shell 脚本攻略 数组和关联数组 数组分类普通数组:只能使用整数作为数组索引。关联数组:...

  • shell数组和关联数组

    数组和关联数组 数组和关联数组 1 数组1.1 在单行中使用数值列表来定义一个数组:1.2 打印出特定索引的数组元...

  • Linux shell脚本攻略(2)

    1.数组与关联数组 数组使用整数作为索引,关联数组使用字符串作为数组索引。 1.数组的定义: arr=(1 2 3...

  • shell数组

    普通数组:只能使用整数作为数组索引关联数组:可以使用字符串作为数组索引 定义普通数组 定义关联数组 示例1:普通遍...

  • PHP 数组

    PHP 关联数组关联数组是使用您分配给数组的指定的键的数组。 这里有两种创建关联数组的方法: 随后可以在脚本中使用...

  • Shell数组、关联数组

    数组 定义数组 获取数组 关联数组 定义关联数组 获取关联数组

  • Shell编程

    更改显示颜色 $(tput sgr0)初始化终端 关联数组 区别普通数组:只能使用整数作为数组索引关联数组:可以使...

网友评论

      本文标题:3.数组、关联数组和别名使用

      本文链接:https://www.haomeiwen.com/subject/ppuioxtx.html