Linux 常用变量

zhangsir 2016-10-03 36浏览 0条评论
首页/正文
分享到: / / / /

变量

Linux中变量能够提高我们的工作效率,简单的定义变量:就是以一组文字或符号等,来代替一些设置或者是一串保留的数据,让我们在需要的时候方便的调用。

变量的显示与设置

显示变量内容:echo $变量名 或 echo ${变量名}

变量的设置规则:

  • 变量赋值用等号“=”;
  • 等号两边不能直接接空格等特殊字符;
  • 变量名称只能是字母与数字,但是开头不能是数字;
  • 变量内容若有空格可用单引号“ ‘ ’”或双引号“ “ ”将变量内容结合起来;

单引号强引用,内容强行引用为字符。 双引号若引用,可引用内用内的变量。

  • 特殊符号需要用反斜杠“\”转义;
  • 若需要引用命令则使用返单引号“ ` ”【可多层嵌套】或“$(命令)”【不可多层嵌套】;
  • 变量内容累加:变量名=“$变量名”累加内容(PATH="PATH":/root/bin);

取消变量:unset 变量名(不加“$”符号)

变量类型:

本地变量:只对当前shell进程生效

环境变量:可对当前shell进程和子进程生效

局部变量:只对当前shell进程特定代码段生效

特殊变量: $?, $0, $*, $@, $# *

  • *$#:获取当前shell命令行中参数的总个数 *
  • $:获取当前shell的所有参数 “$1 $2 $3 …,受IFS控制
  • $@:这个程序的所有参数 “$1″ “$2″ “$3″ “…”,不受IFS控制
  • $0 获取当前执行的shell脚本的文件名
  • $n 获取当前执行的shell脚本的第n个参数值,n=1..9 $$ 获取当前shell的进程号(PID)
  • $! 执行上一个指令的PID

查看已设变量:

env:显示当前用户变量

export:显示当前导出成用户变量的shell变量(还可设置环境变量)

set:显示所有变量(含环境变量与自定义变量)

声明变量类型:

declera/typeset 两者功能一样,都是声明变量类型,如果其后不接参数,将与set一样列出所有的变量。

常用选项:

  • -a:定义数组变量
  • -i:定义整数变量
  • -x:定义环境变量
  • -r:定义变量为readonly类型,该变量不可改变内容,也不能重设。 若不指定,变量类型默认为字符串类型。 bash不支持浮点型数值

bash中的算术运算: let

  • +, -, *, /, %取模(取余) , **(乘方) 实现算术运算: *
  • (1) let var=算术表达式
  • (2) var=$[算术表达式]
  • (3) var=$((算术表达式))
  • (4) var=$(expr arg1 arg2 arg3 ...)
  • (5) declare –i var = 数值
  • (6) echo ‘算术表达式’ | bc  乘法符号有些场景中需要转义, 如*  bash有内建的随机数生成器: $RANDOM( 1-32767) echo $[$RANDOM%50] : 0-49之间随机数 增强型赋值: +=, -=, *=, /=, %=  let varOPERvalue 例如:let count+=3 自加3后自赋值  自增,自减: let var+=1 let var++ let var-=1 let var--

test判断测试

数值测试

  • -gt: 是否大于
  • -ge: 是否大于等于
  • -eq: 是否等于
  • -ne: 是否不等于
  • -lt: 是否小于
  • -le: 是否小于等于 字符串测试
  • ==:是否等于
  • >: ascii码是否大于ascii码
  • <: 是否小于
  • !=: 是否不等于
  • =~: 左侧字符串是否能够被右侧的PATTERN所匹配 注意: 此表达式一般用于[[ ]]中;

扩展的正则表达式

  • -z "STRING":字符串是否为空,空为真,不空为假
  • -n "STRING":字符串是否不空,不空为真,空为假 注意:用于字符串比较时的用到的操作数都应该使用引号 。

存在性测试:

  • -a FILE:同-e
  • -e FILE: 文件存在性测试,存在为真,否则为假 存在性及类别测试
  • -b FILE:是否存在且为块设备文件
  • -c FILE:是否存在且为字符设备文件
  • -d FILE:是否存在且为目录文件
  • -f FILE:是否存在且为普通文件
  • -h FILE 或 -L FILE:存在且为符号链接文件
  • -p FILE:是否存在且为命名管道文件
  • -S FILE:是否存在且为套接字文件 文件权限测试:
  • -r FILE:是否存在且可读
  • -w FILE: 是否存在且可写
  • -x FILE: 是否存在且可执行 文件特殊权限测试:
  • -u FILE:是否存在且拥有suid权限
  • -g FILE:是否存在且拥有sgid权限
  • -k FILE:是否存在且拥有sticky权限 文件大小测试:
  • -s FILE: 是否存在且非空 文件是否打开:
  • -t fd: fd表示文件描述符是否已经打开且与某终端相关
  • -N FILE:文件自动上一次被读取之后是否被修改过
  • -O FILE:当前有效用户是否为文件属主
  • -G FILE:当前有效用户是否为文件属组

双目测试

  • FILE1 -ef FILE2: FILE1与FILE2是否指向同一个设备上的相同inode
  • FILE1 -nt FILE2: FILE1是否新于FILE2
  • FILE1 -ot FILE2: FILE1是否旧于FILE2
最后修改:2016-10-03 14:28:09 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

上一篇

发表评论

评论列表

还没有人评论哦~赶快抢占沙发吧~