From 1c80c00eeddbee003e608050641d21a5f1c343ff Mon Sep 17 00:00:00 2001 From: shzhxh Date: Mon, 7 Oct 2019 10:52:55 +0800 Subject: [PATCH] add some cmds --- Languages/LinuxShell/bash.md | 8 +++++++- Software/builtin命令/case.md | 6 ++++++ Software/builtin命令/local.md | 6 ++++++ Software/builtin命令/shift.md | 5 +++++ Software/文件管理/ls.md | 2 +- others/LKP/lkp.md | 32 ++++++++++++++++++++++++++++++++ 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 Software/builtin命令/case.md create mode 100644 Software/builtin命令/local.md create mode 100644 Software/builtin命令/shift.md create mode 100644 others/LKP/lkp.md diff --git a/Languages/LinuxShell/bash.md b/Languages/LinuxShell/bash.md index cb052c0..48acdd0 100644 --- a/Languages/LinuxShell/bash.md +++ b/Languages/LinuxShell/bash.md @@ -59,11 +59,17 @@ #### 条件表达式 ``` +# 文件比较 +-f文件存在, -d目录存在, -e,文件或目录存在,-s文件存在且非空, -r文件存在且可读, -w, -x + # 字符串比较 -==, =, !=, < , > +==, =, !=, < , >, -n字符串非空, -z字符串为空 # 数字比较 -eq, -ne, -lt, -le, -gt, -ge + +# 逻辑运算 +-a且,-o或,&&且, ||或 ``` diff --git a/Software/builtin命令/case.md b/Software/builtin命令/case.md new file mode 100644 index 0000000..2497eaa --- /dev/null +++ b/Software/builtin命令/case.md @@ -0,0 +1,6 @@ +``` +case in [ ) ;;]... esac + # 如满足PATTERN则执行COMMANDS,PATTERN内部可以用|来分离。 + # 返回的是最后一个命令的返回值 +``` + diff --git a/Software/builtin命令/local.md b/Software/builtin命令/local.md new file mode 100644 index 0000000..397973d --- /dev/null +++ b/Software/builtin命令/local.md @@ -0,0 +1,6 @@ +``` +local [option] name[=value] # 定义本地变量。本地变量只能在函数内使用。 + # option:是decare命令的任意参数。 + # 返回值为假,如果提供了无效的选项、变量赋值错误、shell没有执行函数;否则返回真。 +``` + diff --git a/Software/builtin命令/shift.md b/Software/builtin命令/shift.md new file mode 100644 index 0000000..f0d9f84 --- /dev/null +++ b/Software/builtin命令/shift.md @@ -0,0 +1,5 @@ +``` +shift [n] # 向前移动n个参数,如不指定n则默认移1个参数。 + # 返回值:当n为负数或大于参数个数,返回假;否则返回真。 +``` + diff --git a/Software/文件管理/ls.md b/Software/文件管理/ls.md index 92c63e0..ee63137 100644 --- a/Software/文件管理/ls.md +++ b/Software/文件管理/ls.md @@ -16,7 +16,7 @@ ls [选项] [文件] # 列出文件的信息,默认以字母序排列 -d -D -f --F +-F, --classify # 在每个输出项后追加类型标识符。普通文件不输出任何标识符,可执行文件为*,目录为/,套接字为=,符号链接为@,命令管道为|。 -g -G -h, --human-readable # 以人类可读的方式展示文件大小 diff --git a/others/LKP/lkp.md b/others/LKP/lkp.md new file mode 100644 index 0000000..395d798 --- /dev/null +++ b/others/LKP/lkp.md @@ -0,0 +1,32 @@ +#### 解决的问题 + +#### 内部的结构 + +##### lkp脚本 + +1. 首先要定义变量LKP_SRC +2. 定义show_help函数,即指印一些字符串 +3. 如没有参数或参数为help,则执行show_help函数并退出 +4. 如第一个参数为help,则第二个参数为真正的命令,将打印真正的命令的帮助信息。 +5. 第一个参数如果不是help,则是一个要执行的命令,为其指定真正对应的命令。 +6. 定义try_run函数,即以第二参数为子目录,其余参数为参数,执行真正的命令。 +7. 执行try_run函数,尝试以bin, sbin, tools, lkp-exec为第一个参数执行之。 +8. 如以上执行try_run函数失败,则打印执行失败信息并退出。 + +##### 打包 + +运行`lkp pack `执行的一系列操作,包括下载、编译、打包。由于lkp命令的执行是分别从bin, sbin,tools, lkp-exec分别查找对应命令尝试执行,而仅在sbin目录下有pack命令,所以`lkp pack`真正执行的是`sbin/pack`命令。 + +##### 本地运行 + +##### 虚拟机运行 + +#### 使用方法 + +##### 打包脚本 + +##### 配置脚本 + +##### 测试脚本 + +##### 数据脚本 \ No newline at end of file