Linux工具篇--shell脚本总结

79 阅读3分钟

摘要

Linux 脚本判断,字符串处理常常会忘记,总结一下防止下次找不到,增加编程友好。解决shell不常用但是又不能不用的问题

00 ? $!用法

$$
# Shell本身的PID(ProcessID)
$!
# Shell最后运行的后台Process的 PID
$?
# 代码返回值
$-
# 使用 Set命令设定的 Flag 一览
$# 
# 添加到Shell的参数个数
$0
# hell本身的文件名
$1$n
# shell 输入的参数
$@
// 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数
$* 
// 所有参数列表。如"$*"用「"」括起来的情况、以 "$1 $2$n" 的形式输出所有参数。

if 参数

shell 编程中使用到得if语句内判断参数
  –b 当file存在并且是块文件时返回真
  -c 当file存在并且是字符文件时返回真
  -d 当pathname存在并且是一个目录时返回真
  -e 当pathname指定的文件或目录存在时返回真
  -f 当file存在并且是正规文件时返回真
  -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
  -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
  -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
  -p 当file存在并且是命令管道时返回为真
  -r 当由pathname指定的文件或目录存在并且可读时返回为真
  -s 当file存在文件大小大于0时返回真
  -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
  -w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
  -o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

判断比较

1. Shell 字符比较
  -eq   等于
  -ne    不等于
  -gt    大于
  -lt    小于
  -le    小于等于
  -ge   大于等于
  -z    空串
  =    两个字符相等
  !=    两个字符不等
  -n    非空串
2. 文件比较运算符
    -e filename     如果filename 存在,则为真
  -d filename     如果 filename 为目录,则为真
  -f filename     如果 filename 为常规文件,则为真
  -L filename     如果 filename 为符号链接,则为真
  -r filename     如果 filename 可读,则为真
  -w filename     如果 filename 可写,则为真
  -x filename     如果 filename 可执行,则为真
  filename1 -nt filename2 如果 filename1 比 filename2 新,则为真
  filename1 -ot filename2   如果 filename1 比 filename2 旧,则为真
3. 字符串比较运算符
# (注意引号的使用,防止空格扰乱代码)
    -z string            string 长度为零,则为真
  -n string             如果 string 长度非零,则为真
  string1 = string2     如果 string1 与 string2 相同,则为真
  string1 != string2    如果 string1 与 string2 不同,则为真
  算术比较运算符
  num1 -eq num2         等于
  num1 -ne num2         不等于
  num1 -lt num2         小于
  num1 -le num2         小于或等于
  num1 -gt num2         大于
  num1 -ge num2         大于或等于

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情