数组、变量及bash的配置

数组、变量及bash的配置

变量:存储单个元素的内存空间

数组:存储多个元素的内存空间,相当于多个变量集合

索引:编号从0开始,属于数值索引,索引为自定义格式即为关联数组(bash4.0之后支持) bash数组支持稀疏格式

数组的声明

普通数组declare –a

关联数组 declare –A

普通数组可以不声明直接使用,关联数组必须先声明再使用

数组的赋值:(arr代表数组)

1一次只赋一个值 arr[n]=

2一次赋全部值arr=n1 n2 n3…..)支持arr={n1…n2})格式

3只赋值特定元素arr=(a[n1]=    a[n2]= …..)

4交互式赋值  read –a arr

引用数组元素: ${arr[n]}省略n时代表下标为0

数组长度(数组元素个数): ${}#arr[@|*]}

数组中所有元素${arr[@]}${arr[*]}

数组切片${arr[*]offsetnumber}

offset:要跳过的元素个数

number:取出的元素个数

向数组中追加元素arr[${#arr[*]}]

删除数组中元素:unset arr[n]

字符串切片(var代表变量)

${#var}:显示变量的字符长度

${varoffsetnumber}

offset:要跳过的字符个数

number:取出的字符个数

${var  -#}:从右向左计算取出#个字符

${var#1  -#}:跳过前#1个字符,取到倒数#2个字符之前

基于模式取子串

${变量#*字符}:从左向右找到变量所存储字符串第一次匹配到的字符串,删除匹配到的字符串左侧包括匹配到字符串本身的字符

${变量##*字符}:从左向右找到变量所存储字符串最后一次匹配到的字符串,删除匹配到的字符串左侧包括匹配到字符串本身的字符

${变量 %*字符}:从右向左找到变量所存储字符串第一次匹配到的字符串,删除匹配到的字符串右侧包括匹配到字符串本身的字符

${变量 %%*字符}:从右向左找到变量所存储字符串最后一次匹配到的字符串,删除匹配到的字符串右侧包括匹配到字符串本身的字符

字符串的查找替换

${变量/要替换的/替换为}:替换第一个找到的字符串

${变量//要替换的/替换为}:替换所有找到的字符串

${变量/#要替换的/替换为}:只替换在行首匹配到的字符串

${变量/%要替换的/替换为}:只替换在行首匹配到的字符串

${变量^^}:将变量中所有字母转化为大写

${变量,,}:将变量中所有字母转化为小写

${变量:-value}:若变量为空或未设置则返回value值,否则返回变量值

${变量:+value}:若变量为空或未设置则返回空,否则返回value

${变量:=value}:若变量为空或未设置则返回value值并将value值赋给变量,否则返回变量值

${变量:error}:若变量为空或未设置则返回错误信息,否则返回变量值

declare:定义数组,变量

-r:定义只读变量

-i:定义整形变量

-a:定义数组

-A:定义关联数组

-f:查看当前shell定义的所有函数

-F:查看当前shell定义的所有函数名

-x:定义环境变量

-l:将变量内容转化为大写

-u:将变量内容转化为小写

typeset=declare

变量的间接引用

eval  #=\$$变量

#=${!变量}

eval会对变量进行两次扫描,会首先扫描命令行进行所有的置换再运行命令

mktemp:创建临时文件,文件名后缀为3个以上XXX

-d:创建临时目录

install:复制

-d:创建空目录 

-m:指定复制后文件权限

-o:指定复制后文件所有者

-g:指定复制后文件所属组

bash的配置文件

全局:/etc/profile  /etc/profile.d/*.sh  /etc/bashrc

个人:~/.bash_profile   ~/.bashrc

登录分为交互式登录和非交互式登录

交互式登录:直接通过终端登录,使用su –切换

非交互式登录:图形界面下打开的终端,su切换,脚本

交互式登录访问配置文件顺序:/etc/profile  /etc/profile.d/*.sh  ~/.bash_profile   ~/.bashrc  /etc/bashrc

非交互式登录访问配置文件顺序:~/.bashrc  /etc/bashrc  /etc/profile.d/*.sh

profile类配置文件一般存放环境变量,命令或脚本

bashrc类配置文件一般存放本地变量,别名,函数

修改配置文件后要用.source命令使配置生效

.bash_logout:退出时的脚本

原创文章,作者:zzzzz1357x1,如若转载,请注明出处:http://www.178linux.com/40276

(0)
zzzzz1357x1zzzzz1357x1
上一篇 2016-08-26
下一篇 2016-08-26

相关推荐

  • Linux之yum详解及程序包安装

    Linux之 yum详解 及 程序包安装    在Linux常用的命令安装工具中,rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。    但是rpm有一个缺点,无法解决包的依赖性,也就是…

    Linux干货 2016-08-24
  • 文本处理工具

    1.cat 主要三大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename << EOF ….>EOF (只能创建新文件,不能编辑已有文件);cat向已经存在的文件追加内容:cat >> file <<EOF…>EOF 3.将几…

    2017-07-29
  • M22 用户、组学习总结

    Linux系统的登录方式是通过账号和密码。每一个登录账号都有一个主组可能有附加组。Linux内的文件和目录都有所有者和属组,只有相应权限的账户可以对其进行操作,下面我对用户权限相关内容进行了总结。   1、  用户ID,每个用户具有相应的ID号码,主要分为两类:系统ID和用户ID,在Centos6中系统ID为1-499,用户ID >…

    2017-02-22
  • Linux Bash脚本编程练习

    马哥教育网络班23期+第九周课堂练习 Linux Bash脚本编程练习 练习 1.写一个脚本,判断当前系统上所有用户的shell是否为可登录shell (即用户的shell不是/sbin/nologin) 分别统计这2类用户的个数,通过字符串比较来实现 脚本: 测试结果:  。。。 2.写一个脚本 (1)获取当前主机的主机名 保存于hostname…

    Linux干货 2016-11-28
  • 马哥教育网络班22期+第16周课程练习

    1、源码编译安装LNMP架构环境; 安装开发包组 yum groupinstall "Development Tools" "Server Platform Development" -y yum install -y …

    Linux干货 2017-01-03
  • 搭建私有CA服务器

       CA(Certificate Authority)证书颁发机构主要负责证书的颁发、管理以及归档和吊销。证书内包含了拥有证书者的姓名、地址、电子邮件帐号、公钥、证书有效期、发放证书的CA、CA的数字签名等信息。证书主要有三大功能:加密、签名、身份验证。下面来看一下自建CA的过程    一、建立CA服务器 &nbsp…

    Linux干货 2016-03-14

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-26 09:22

    文章对各知识点进行了完整的概述,不过在思路上可以尽量详细点,邮资机的思路,而不是仅仅罗列知识点,让他们能能顺畅出的串起来成为一篇优秀的博客。