高级变量-有类型变量

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

  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

相关推荐

  • 救援模式安装grub

    如果之前mbr没有备份,而后grub损坏进不了系统,只能用系统光盘或U盘开机进入救援模式安装grub,操作如下 1.光盘启动,进入救援模式 2.切换根目录 # chroot /mnt/sysimage 3.安装 grub # grub-install /dev/sda 4.重新启动        &…

    Linux干货 2017-01-13
  • N22-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~]# fd…

    Linux干货 2016-10-07
  • 2016/08/11:初涉shell脚本编程

    感悟 :    经过对文本处理工具grep,sed等内容的,以及vim文本编辑器的学习,马不停蹄的又进行了对shell脚本的学习。对shell脚本的认识是可以保存在本地,用的时候只要执行相关脚本,简短的命令就可以完成操作,可以用来应对日常重复性工作,有效提高系统管理员的效率,避免在重复性工作上花费不必要的时间。 *************…

    Linux干货 2016-08-16
  • Linux 终端类型

      1、 什么是终端     终端就是用户与主机进行交互的一种介质(方式),可以是虚拟的,也可以是实体的。   2、 终端种类       (1)控制台终端(/dev/console):在Linux系统中,计算机显示器通常被称为控制台终端。Console与虚拟终端相关联…

    Linux干货 2016-10-19
  • 马哥教育N22期第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; [root@localhost xuc]# cat /proc/partitions  major minor  #blocks  name    8   &…

    Linux干货 2016-10-24
  • 6

    请详细总结vim编辑器的使用并完成以下练习题; 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/ rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; #   cp /etc/rc.d/rc.sysinit /tmp/ #   vim…

    Linux干货 2017-02-07