抱歉,评论被关闭
容易让迷惑的shell变量
脑袋有时候不好使! 老了!看 shell语法概要,还挺多的, 精简一下 ,方便迷惑了,查找!
容易迷惑的(摘录shell 语法)
$1-9 1-9个参数
$# 参数的数量
$@ 所有参数,但是所有参数都是一个字符串
$* 所有参数,但每个参数都是一个单独元素$$ 进程ID变量. 这个$$变量保存了它所在脚本的进程ID
$! 后台进程ID值
需要注意的
;; 终止case选项.
“ 命令替换. 已逐渐被$()替代,后者更灵活,如可以嵌套等
() 命令组.
{} 代码块,又被称为内部组, 这个结构事实上创建了一个匿名函数(一个没有名字的函数).
[] 条件测试.数组元素.用作正则表达式的一部分, 方括号描述一个匹配的字符范围.-e 文件存在.
-f 表示这个文件是一个一般文件.
-d 表示这是一个目录.
-b 表示这是一个块设备.
-c 表示这是一个字符设备.
-p 这个文件是一个管道
-s 文件大小不为零.
-L 这是一个符号链接
-S 表示这是一个socket
-t 文件(描述符)被关联到一个终端设备上.
这个测试选项一般被用来检测脚本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否来自于一个终端.
-r 文件是否具有可读权限(指的是正在运行这个测试命令的用户是否具有读权限)
-w 文件是否具有可写权限(指的是正在运行这个测试命令的用户是否具有写权限)
-x 文件是否具有可执行权限(指的是正在运行这个测试命令的用户是否具有可执行权限)
-g set-group-id(sgid)标记被设置到文件或目录上
-u set-user-id (suid)标记被设置到文件上
-k 设置粘贴位
-O 判断你是否是文件的拥有者
-G 文件的group-id是否与你的相同
-N 从文件上一次被读取到现在为止, 文件是否被修改过
! “非” — 反转上边所有测试的结果(如果没给出条件, 那么返回真).[[]] 测试.
(()) 整数扩展.
—-运算命令—-
loop=$(((31-16)/8))
echo $loop
用$(())命令可以进行数学计算
本文出自 “凹凸曼” 博客,请务必保留此出处 http://www.apoyl.com/?p=1109