Shell
#!bin/sh 幻数
$0 : 获取当前执行的shell脚本的文件名,包括脚本路径
eg: echo $0
$n: 获取当前执行的shell脚本第n个参数值,若大于9则加大括号
eg:
sh test.sh what's your name
$*: 获取当前shell的所有参数
eg:
sh test.sh what's your name
$#: 获取当前shell 命令行中所有参数的总个数(判断参数个数)
eg:
sh test.sh what's your name
$@: 这个程序的所有参数, “$1”,”$2”,”$3”
Dirname $0 输出脚本路径
Basename $0 输出脚本名
Printf 格式化打印
Shift 移位 shift5 移5位
$!: 执行上一个指令的PID
$:获取当前shell的进程号PID
$?: 获取执行上一个指令的返回值(0为成功,1为失败)
$_: 在此之前执行的命令或脚本的最后一个参数
${#string}:取字符串长度
${#string:2:3}:取第2个字符起的后3个字符
计算器
((……)) eg:((a=2+3)) echo $a
Let eg: i=2 let i=i+8
Expr(能判断扩展名) eg: expr 2+2
Bc
$[ ] eg: echo $[ 2 + 3 ]
Read -t 10 –p “input number” a b 读入a,b变量
10s 打印出 input number
. /etc/rc.d/init.d/functions
Action “start nginx” /bin/true
-n 字符串长度为非0
-z 字符串长度为0
-eq 等于
! 取反
-ge 大于等于
-lt 小于
[ -f file ] -a与 -o 或 !非
[[ -f file ]] &&与 ||或 !非
Break n 跳出循环的层数,省略n,表示跳出整个循环
Continue n 表示退到第n层继续循环,省略n,表示忽略本次
Exit n 退出当前shell程序,n为返回值
Return n 最为函数的返回值
bash
-x 将执行的脚本内容及输出显示到屏幕上
-n 不执行脚本,检查语法是否有问题
Set –x ….. set +x 只调试Set –x 与Set +x 中间的内容
Eg: vim a.sh ,加入Set –x set +x ,执行sh a.sh ,则只调试其中间内容
若用shell编辑MySQL启动脚本,且加入开机自启动,则复制 /etc/init.d/mysqld/ 中下面两行,并粘贴在shell脚本中。
# chkconfig: 2345 64 36
# description: A very fast and reliable SQL database engine.
1、 case语句
case分支语句的格式如下:
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认执行的命令序列 ;;
esac
eg:
2、for循环
for 变量名 in 变量
do
…
Done
For (( i=0;i<=100;i++ ))
Do
..
Done
eg:
If then
elif
else
fi
eg:
while 条件
do
指令
Done
eg:
Until 条件
Do
指令
Done