Linux学习-命令行参数函数

Posted chenzy01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Linux学习-命令行参数函数的主要内容,如果未能解决你的问题,请参考以下文章

linux Shell特殊变量 $0, $#, $*, $@, $?, $$和命令行参数

Linux网络编程学习 ----- 进程控制实例

C命令行参数解析——getoptgetopt_long及getopt_long_only

[Linux编程] module_param()函数学习笔记

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

java基础3-重载+命令行传参+递归+数组+排序