if条件判断
逻辑运算符:或
score=$1 if [ $score = 5 ]||[ $score = 3 ];then echo right else echo wrong fi
score=$1 if [ $score -gt 5 ]||[ $score -lt 3 ];then echo right else echo wrong fi
score=$1 if [ $score -gt 15 ]||([ $score -lt 8 ]&&[ $score -ne 5 ]);then echo right else echo wrong fi
逻辑运算符的另一种写法:
-a | 逻辑与 |
-o | 逻辑或 |
! | 逻辑否 |
count="$1" if [ $count -gt 15 -o $count -lt 5 ];then echo right fi
count="$1" if [ $count -gt 5 -a $count -lt 15 ];then echo right fi
score=$1 if [[ $score -gt 15 || $score -lt 8 && $score -ne 5 ]];then echo right else echo wrong fi
判断脚本变量是否为空
P=$1 if [ ! -n $P ]; then echo "is null" else echo "is not null" fi
P=$1 if [ ! $P ]; then echo "is null" else echo "is not null" fi
P=$1 if test -z $P; then echo "is null" else echo "is not null" fi
shell中map的使用和遍历
declare -A map=()
declare -A map=(["100"]="1" ["200"]="2")
echo ${!map[@]}
echo ${map[@]}
map["300"]="3"
echo ${map["100"]}
for key in ${!map[@]} do echo ${map[$key]} done
shell提取文件后缀名,并判断其是否为特定字符串
如果文件是 .css文件 或 .js文件,则进行处理。
file=$1 if [ "${file##*.}"x = "css"x ]||[ "${file##*.}"x = "js"x ];then do something fi
注意:
1、 提取文件后缀名: ${file##*.}
##是贪婪操作符,从左至右匹配,匹配到最右边的.号,移除包含.号的左边内容。
2、 是=,而且其两边有空格,如果没有空格,会报错
3、 多加了x,是为了防止字符串为空时报错。
do
echo "$1 machine $i"
/usr/bin/ssh $i "/sbin/$COMMOND" 2>>"$LOG_FILE" 1>&2
done
注:将标准错误输出到$LOG_FILE中,并且将标准输出重定向到标准错误输出。
#! /bin/sh # get directory currenctly DIR_NOW=$(cd $(dirname $0); pwd) echo "DIR_NOW=$DIR_NOW" # get up one directory according to current directory DIR_UP=$(dirname $(cd $(dirname $0); pwd)) echo "DIR_UP=$DIR_UP"
测试语句
格式一 test
格式二 [ <测试表达式> ]
格式三 [[ <测试表达式> ]]
字符串测试比较
注意事项:
1 字符串或字符串变量比较都要加双引号再比较;
2 字符串或字符串变量比较,比较符号两端都最好都有空格;
整数二元比较操作符
逻辑操作符
在[ ]中是使用的逻辑操作符 | 在[[ ]]中使用的逻辑操作符 | 说明 |
-a | && | |
-o | || | |
! | ! |
监控MySQL是否异常,如果异常则启动.
Web服务监控手段.
Shell变量输入
read -t 5 -p "pls input:" a
#!/bin/sh read -p "pls input two num:" a b [ -z "$a" ] || [ -z "$b" ] && { echo "pls input two num again" exit 1 } expr $a + 0 &> /dev/null RETVAL1=$? expr $b + 0 &> /dev/null RETVAL2=$? #[ $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 ] && { # echo "pls input two num again" # exit 2 #} test $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 && { echo "pls input two num again" exit 2 } [ $a -lt $b ] && { echo "$a < $b" exit 0 } [ $a -eq $b ] && { echo "$a == $b" exit 0 } [ $a -gt $b ] && { echo "$a > $b" exit 0 }
变量的数值计算
expr
bc 是unix下的计算器,支持小数运算和整数运算
变量替换避免误操作
运算符号 | 替换 |
${value:-word} | 如果变量名存在且非null,则返回变量的值。否则,返回word字符串。 用途:如果变量未定义,则返回默认值。 范例:${value:-word},如果value未定义,则表达式的值为word。 |
${value:=word} | 如果变量名存在且非null,则返回变量的值。否则,设置这个变量值为word,并返回其值。 用途:如果变量未定义,则设置变量为默认值,并返回默认值。 范例:${value:=word},如果value未定义,则设置value值为word,返回表达式的值也为word。 |
${value:?"not defined"} | 如果变量名存在且非null,则返回变量的值,否则显示变量名message, 并且退出当前的命令或者脚本。 用途:用于捕捉由于变量未定义而导致的错误,并退出程序。 范例:${value:?"not defined"}如果value未定义,则显示-bash:value: not defined 并退出。 |
${value:+word} | 如果变量名存在且非null,则返回word。否则返回null。 用途:测试变量是否存在。 范例:${value:+word}如果value已经定义,返回word(也就是真)。 |
Shell特殊变量
1、位置变量
$0 获取当前执行的shell脚本的文件名
$n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n=0时表示脚本的文件名,如果n大于9,需要用大括号括起来${10}
$# 获取当前执行的shell脚本后面接的参数总的个数
$* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$*与$@的区别?
dirname $0
basename $0
2、进程状态变量
$? 获取执行上一个指令的返回值(0为成功,非零为失败)
$$ 获取当前shell脚本的进程号(PID)
$! 获取上一个指令的PID
$_ 在此之前执行命令的最后一个参数
Shell函数
#!/bin/sh if [ $# -ne 1 ] then echo "Usage:$0 {url}." exit 1 fi function Check_Url(){ curl -o /dev/null -s -w "%{http_code}" $1 && return 0 || return 1 } Check_Url $1
脚本启动Mysql单实例和多实例
把脚本放到/etc/init.d,实现/etc/init.d/mysql01 start 启动,并且通过chkconfig对其进行开机启动和管理.
怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用?
#!/bin/sh # chkconfig: 2345 20 60 # description: start or stop mysqld service
相关推荐
《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...
在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的...
Shell编程是Linux/Unix操作系统中的一种重要工具,它允许用户通过命令行与系统进行交互,执行各种任务。本文将深入探讨Shell编程的基础知识,包括基本语法、常用的内置命令、条件语句、循环结构以及函数的使用,旨在...
"Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 ...
Linux Shell 编程基础教程 本资源为 Linux Shell 编程基础教程,涵盖了 Linux Shell 编程的基础知识,包括语法基本介绍、变量、环境变量、Shell 命令和流程控制等。 一、语法基本介绍 在 Linux Shell 编程中,...
Shell 编程中文手册 本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell ...
Shell编程则允许开发者通过编写脚本或程序来自动化常见的系统任务,提高工作效率。 一、Windows Shell基础 Windows Shell编程的基础在于了解批处理(Batch)脚本和Windows Script Host (WSH)。批处理脚本是包含一...
本书通过各种实用的系统管理小技巧和趣味脚本代码,详尽地介绍了shell编程各个不同的方面。学完本书后,你将成为一名shell编程高手。 内容简介 本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还...
Shell编程是Linux和Unix系统中不可或缺的一部分,它是一种命令行解释器,同时也是脚本编程语言。通过Shell,用户可以高效地与操作系统交互,自动化日常任务,实现系统管理、数据处理和网络控制等功能。本教程“Shell...
"shell编程--用户信息管理(模拟)" 本课设计的主要目的是让学生掌握 Linux 操作系统中 shell 脚本编程技术的各种知识点,包括变量定义、变量使用、循环控制结构、条件选择结构、用户交互、文件读写、文本内容分析...
13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...
Shell 编程用户信息管理(模拟)课程设计说明书 该课程设计旨在掌握 Linux 操作系统中 shell 脚本编程技术的变量定义、变量使用、循环控制结构、条件选择结构、用户交互、文件读写、文本内容分析以及 Linux 重要...
为什么要进行shell编程 在Linux 系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工 具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使 大量的任务自动化,...
Linux Shell编程与服务器管理是系统管理员和网络管理员必须掌握的高级技能之一。Shell作为操作系统的一个重要组件,是用户与系统核心之间的接口,几乎所有管理者在日常工作中都会频繁地与Shell打交道。Shell具有解释...
这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程基础与高级技巧,PDF格式,共30个文件。另有2个Word文档。包内文件清单如下: 01_Shell-文件安全与权限.PDF 02_Shell-使用find和xargs.PDF 03_Shell-...
shell编程题目练习,练习基本的shell编程,学习脚本语言,提高效率
《Linux与UNIX Shell编程指南》是一本深受欢迎的IT技术书籍,主要涵盖了Linux和UNIX操作系统中的Shell编程技术。这本书在IT领域中具有很高的价值,尤其是对于那些致力于提升系统管理技能和自动化任务处理能力的读者...
1Linux下Shell编程入门及变量讲解.mp4 2Linux下Shell编程入门及变量讲解.mp4 3Shell编程企业实战菜单系列.mp4 4Shell编程企业实战菜单系列.mp4 5Linux下LAMP实战及脚本编程思路讲解.mp4 6Linux下LAMP实战及脚本编程...
Linux是开源的操作系统,它的命令行界面,尤其是Shell编程,对于系统运维人员和开发者来说是至关重要的工具。本文将深入浅出地介绍Linux的基础知识,特别是Shell编程,为初学者提供一个全面的学习路径。 首先,我们...