linux下Bash局部变量及信号捕捉等概念解释

1.脚本配置文件

/etc/rc.d/init.d/服务脚本可支持配置文件,并放置在/etc/sysconfig/下同名的配置文件

2.局部变量:只对本函数内部等有效,关键字为local

以两个脚本显示变量带或不带local时的区别

2.1编写如下脚本:vim A1.sh

#!/bin/bash

A=1

SUM() {

A=8

}

SUM  调用函数

for I in `seq $A 10`; do

echo -n "$I   "

done

echo

./A1.sh:执行脚本显示结果如下:

2.2编写如下脚本:vim A2.sh、

#!/bin/bash

A=1

SUM() {

local A=8

}

SUM  调用函数

for I in `seq $A 10`; do

echo -n "$I   "

done

echo

3.命令mktemp创建临时文件或目录

格式:mktemp /tmp/file.XX

-d: 创建为目录

4.信号,脚本中能实现信号捕捉,但对9和15无法进行捕捉

格式:kill -SIGNAL PID

1: HUP  2: INT 9: KILL 15: TERM 19:SIGSTOP

Ctrl+c: SIGINT    Ctrl+Z:SIGSTOP

trap命令:trap ‘命令‘ 信号列表

代表跟踪信号并做出动作

命令中可执行多条语句或用函数

Bash中一行执行多个语句,语句间用分号分隔

4.1.编写ping IP地址如在线显示up,不在线显示down,按crtl+c中止ping脚本,如下:

#!/bin/bash

int() {

echo ‘quiting!!!‘

exit 8

}

trap ‘int‘ INT   用函数

for I in {1..20}; do

if ping -c 1  -W1 1.1.1.$I &> /dev/null ; then

echo "1.1.1.$I is up"

else

echo "1.1.1.$I is down"

fi

done

4.2.编写ping IP地址如在线显示up,不在线显示down,按crtl+c中止ping脚本,如下:

#!/bin/bash

trap ‘echo "Quiting";exit 1‘ INT   执行多条语句,用分号隔开

for I in {1..20}; do

if ping -c 1  -W1 1.1.1.$I &> /dev/null ; then

echo "1.1.1.$I is up"

else

echo "1.1.1.$I is down"

fi

done

时间: 2024-12-30 04:19:18

linux下Bash局部变量及信号捕捉等概念解释的相关文章

linux下Bash编程组合测试及编写脚本(五)

linux下Bash编程组合测试及编写综合脚本(五) 1.Bash编程组合测试条件 -a: 与关系 -o: 或关系 !: 非关系 表示方法1:[ $# -gt 100 -a $# -le 500 ] 表示方法2:[ $# -gt 100 ] && [ $# -le 500 ] 2.编写一个任意添加与删除用户的脚本,要求如下: 2.1:如果脚本选项是--add:,将添加用户; 如果选项是--del,将删除用户,如果是--help显示帮助信息 2.2:脚本选项后面的参数可任意指定多个用户并且用

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc

linux下bash配置文件詳解

linux下bash配置文件 1.bash的配置文件: 全局配置:/etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置:~/.bash_profile, ~/.bashrc profile类的文件: 设定环境变量 运行命令或脚本 bashrc类的文件: 设定本地变量 定义命令别名 2. 登录式shell读取配置文件順序如下: /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --&

Linux下shell脚本中信号捕获和函数练习脚本之ping一个网段

该脚本主要的目的是练习在Linux bash脚本中捕获信号,顺便练习一下函数的使用,还有就是终止一个正在运行的程序后,该程序打开的文件的后续处理问题等等! 脚本功能: ping一个网段内的IP,检测哪些IP在线,哪些IP不在线 练习的命令: 1.mktemp 用法:#mktemp 1117.www.qixoo.qixoo.com/Path/To/SomeFile.XXX 其中XXX可以为多个,是由系统随机生成的一段字符串 -d  创建为目录 2.ping 测试网络是否通畅 用法:#ping [-

linux下bash特性和基础管理类命令(一)

bash 的基础特性 1.glob 通配字符         *多个任意字符         ?一个任意字符        []匹配指定范围内的任意单个字符       [^]匹配范围外的任意单个字符      [:lower:]小写字母   #中括号为字符集的一部分,使用时还要加中括号      [:upper:]大写字母     [:alnum:]所有字母     [:digit:]数字     [:space:]空白字符     [:punct:]标点符号 2.组合键     Ctrl+a

Linux下Bash编程之变量详解(一)

1.语言分类: 1.1.静态语言:编译型语言 强类型:变量在使用前,必须事先声明,甚至还需要初始化: 编写的程序事先转换成可执行格式 代表有:C.C++.JAVA.C# 动态语言:解释型语言 弱类型:变量用时声明,甚至不区分类型: 编写的程序边解释边执行 代表有: PHP.SHELL.python.perl 1.2.面向过程编程语言:代表有 Shell, C 1.3.面向对象编程语言: 代表有 JAVA, Python, perl, C++ 结论:shell属于弱类型编程语言 2.shell编程

Linux下Bash入门学习笔记

学习好shell编程是很有用的,可以使用shell脚本轻巧地完成有趣的工作. 本文地址:http://www.cnblogs.com/yhLinux/p/4047516.html Bash实例,作者:Daniel Robbins ([email protected]), 总裁兼 CEO, Gentoo Technologies, Inc. 第一部分:http://www.ibm.com/developerworks/linux/library/l-bash/index.html 第二部分:htt

Linux下bash的一些总结

关于"交互式-非交互式"与"登录-非登陆"shell的总结 关于".bash_profile"和".bashrc"区别的总结 更新操作 打开terminal(终端) cd ~ ( 进入当前用户的home目录) open .bash_profile (打开.bash_profile文件,如果文件不存在就 创建文件:touch .bash_profile 编辑文件:open -e bash_profile) 直接更改弹出的.bas

linux下Bash编程case语句及编写脚本(八)

1.case语句,格式如下: case 变量 in 值1) 语句1 ... ;;  每分支语句以分号结束 值2) 语句2 ... ;; *)    其他,相当于if语句else 语句3 ... ;; esac   整条case语句结束 2.编写一个任意添加与删除用户的脚本,要求如下: 2.1:如果脚本选项是-a或--add:,将添加用户; 如果选项是-d或--del,将删除用户, 如果是-h或--help显示帮助信息,如果是-v或--verbose显示执行过程,否则不显示执行过程 2.2:脚本选