高级变量-有类型变量

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

  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
下一篇 2016-11-24

相关推荐

  • Linux常用命令说明

    个人认为把操作练习打在博客上比较愚蠢,关于操作部分我将以练习题的形式展示,每周固定练习这些基础的题目 Linux常见命令练习 1.文本内容显示 1.1cat: (1)显示/root下adjtime文件内容 (2)把文件mm.txt的文件内容加上行号输入到textfile2文件中 (3)把文件mm.txt和textfile2的文件内容加上行号(空白行不加)之后…

    Linux干货 2016-10-29
  • linux基础知识之nmcli

           CentOS7才有的功能网络组:将多块网卡聚合在一起的方法,从而实现冗错和提高吞吐量        网络组不同于旧版中的bonding技术,提供了更好的性能和扩展性        网路组由内核驱动和teamd守护进程实现 &n…

    Linux干货 2016-09-07
  • 正则表达式

    正则表达式课程笔记

    2017-11-05
  • 联通电信双链路内网VRRP+BFD&&PPTP+MYSQL+FreeRadius实现IDC堡垒机连接IDC机房

    一、具体需求与实现 1、多wan:两条宽带接入链路,使用VRRP+BFD技术,实现链路冗余; 2、IDC机房远程管理和登录限制:使用PPTP+freeRadius+mysql实现VPN,限制指定网段或IP进行拨号认证登录IDC机房,并编写脚本检查非法用户登录IDC机房服务器情况; 3、内网VLAN划分:利于安全管理、IP分流和带宽限制; 4、内网监控:使用N…

    Linux干货 2016-08-22
  • ansible部分功能详解

    一. 架构: 组成     ansible core:     modules:     Core Module     Custom Module   Host Inventory: 主机清单       File   &nbs…

    Linux干货 2016-11-11