高级变量-有类型变量

.高级变量用法– 有类型变量

  Shell 变量一般是无类型的,但是bash Shell 提供了declare和 typeset 两个命令用于指定变量的类型,两个命令是等价的

declare [ 选项]  变量名

-r  将变量设置为只读属性

-i  将变量定义为整型数

-a  将变量定义为数组

-A  将变量定义为关联数组

-f  显示此脚本前定义过的所有函数名及其内容

-F  仅显示此脚本前定义过的所有函数名

-x  将变量声明为环境变量

-l 将变量值转为小写字母 declare –l var=UPPER

-u 母 将变量值转为大写字母 declare –u var=lower

.间接变量引用

 如果第一个变量的值是第二个变量的名字,从第一个变量引用第二个变量的值就称为间接变量引用

 variable1=variable2

 variable2=value

 variable1 的值是variable2 ,而variable2 又是变量名,variable2 的值为value ,间接变量引用是指通过variable1获得变量值value 的行为间接变量引用

eval tempvar=\$$variable1

例:

[root@lxc ~]# cmd=command

[root@lxc ~]# command=hostname

[root@lxc ~]# eval s=\$$cmd

[root@lxc ~]# echo $s

hostname

[root@lxc ~]#

tempvar=${!variable1}

例:

[root@lxc ~]# cmd=command

[root@lxc ~]# command=hostname

[root@lxc ~]# s=${!cmd}

[root@lxc ~]# echo $s

hostname

[root@lxc ~]#

 

.eval 命令

 eval 命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实现其功能的变量. 该命令对变量进行两次扫描

例:

[root@lxc ~]# echo {1..10}

1 2 3 4 5 6 7 8 9 10

[root@lxc ~]# n=6

[root@lxc ~]# eval echo {1..$n}

1 2 3 4 5 6

[root@lxc ~]#

 

.创建临时文件

mktemp 命令:创建的临时文件可避免冲突

例:

[root@lxc ~]# mktemp lxc.XXX

lxc.9qa

[root@lxc ~]#

mktemp [OPTION]… [TEMPLATE]

TEMPLATE: filename.XXX

注:X 至少要出现三个

OPTION:

-d:创建临时目录

-p DIR 或–tmpdir=DIR :指明临时文件所存放目录位置

例:

[root@lxc ~]# mktemp -d lxc.XXX

lxc.b8H

[root@lxc ~]# mktemp -p lxc.b8H/ xyh.XXX

lxc.b8H/xyh.CRq

[root@lxc ~]#

 

.安装复制文件

install 命令:

install [OPTION]… [-T] SOURCE DEST  单文件

install [OPTION]… SOURCE… DIRECTORY

install [OPTION]… -t DIRECTORY SOURCE…

install [OPTION]… -d DIRECTORY… 创建空目录

选项:

-m MODE ,默认755

-o OWNER

-g GROUP

例:

[root@lxc ~]# install -m 600 -o lxc -g root test.sh /

 

 

 

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

(0)
changgechangge
上一篇 2016-11-24 16:49
下一篇 2016-11-24 17:14

相关推荐

  • net25-第12周作业

    1、请描述一次完整的http请求处理过程; – (1)客户端发送http请求– (2)服务端建立或处理连接,接受请求或拒绝请求– (3)接受请求:接受客户端对服务器某一资源的请求– (4)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息– (5)访问资源:获取请求报文中请求的资…

    Linux干货 2017-05-15
  • LINUX的初探

    一般而言,计算机的组成遵循着“冯诺依曼体系结构”。这种结构的体现实质上是一种存储程序的原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式来存储。这种结构的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。

    2018-03-04
  • N26-博客作业-week11

    1、详细描述一次加密通讯的过程,结合图示最佳。 加密过程 1、先用单向加密算法计算出数据的特征码 2、私钥加密特征码,并将结果附加在数据之后 3、生成一个临时的对称密钥,并使用对称密钥加密整段数据 4、获取对方的公钥,使用该公钥加密之前生成的临时对称密钥,并附加在数据之后 5、将所有数据发送给对方解密过程 1、先使用私钥解密加密的对称密钥 2、用对称密钥解密…

    2017-04-18
  • 超文本传输协议-HTTP

        超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。     设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或…

    Linux干货 2017-07-31
  • Linux之磁盘管理

    Linux之磁盘管理       linux系统中, 一切都是文件, 而这些文件都是存储在磁盘中, 因此对于磁盘的管理是非常重要的, Linux磁盘管理的好坏, 直接关系到整个系统的性能问题, 本文主要介绍了磁盘结构, 分区类型, 管理分区, 管理文件系统, 挂载设备, 管理虚拟内存这几大项的内容.    &…

    Linux干货 2016-08-29
  • linux下的文件查找命令对比(locate,find,grep,sed)

        在linux下,文件系统占据着非常重要的位置,而我们对于文件系统的操作也显得尤为重要。 如果我们想熟悉的操作文件系统,其中,我们需要对文本的查找,截取等命令需要熟悉的掌握。 这里就不得不说几个关于文本操作的几个命令的作用详细介绍和对比。比如: locate,find ,grep ,sed等。 这里,grep ,…

    Linux干货 2016-08-15