Linux学习-命令行参数、函数

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

相关推荐