Shell
命令行参数
- 命令行参数可以使用 $1 $2 ... ${10}..$n 进行读取
- $0 代表脚本名称
- $* 和 $@ 代表所有位置参数
- $# 代表位置参数的数量
函数
-
function fname(){
命令
} -
函数的执行:
- fname
- 取消某个一个函数:unset fname
函数作用范围的变量
- local 变量名 只在函数内部起作用
函数的参数
- $1 $2 $3...$n
demo
1、创建一个文件:vim 1.sh
2、在文件中编辑函数:
#!/bin/bash
# functions
checkpid() {
local i
for i in $*;do
[ -d "/proc/$i" ] && return 0
done
return 1
}
3、给文件赋予执行权限和执行文件
chmod u+x 1.sh
source 1.sh # 这里若用bash 或 ./ 方式运行文件的话,则函数会在子进程中执行,父进程是无法得到函数的定义
checkpid 1
echo $?
系统函数库
- /etc/init.d/functions 系统自建的函数库
- /etc/profile 存放系统环境变量
- .bashrc 和 .bash_profile 两个文件中都有决定程序执行顺序的函数,这两个文件都在根目录的家目录下面
自建函数库
- 使用 source 函数脚本文件“导入”函数
- source /etc/init.d/functions
捕获信号的脚本编写
- kill 默认发送15号信号给应用程序
- Ctrl+c 发送2号信号给应用程序
- 9 号信号不可阻塞
- 例:
- trap "echo sig 15" 15 捕获15号信号,捕获到就输出 sig 15