bash脚本应用
2014-03-20 19:21
169 查看
所有技巧都可以使用man bash获得:
搜索":-"
${parameter:-word}
使用(USE)默认值:
变量parameter的值如果未设置或为空,则使用word,但是word并不实际赋值给变量。
${parameter:=word}
赋予(Assign)默认值:
变量parameter的值如果未设置或为空,则将word实际赋予整个变量。
${parameter:?word}
显示错误信息:
变量parameter的值如果未设置或为空,则将会错误信息输出到标准输出。
${parameter:+word}
使用替换(Alternate)值:
当parameter的值实际为空时,则word不做任何替换。
当parameter的值实际不为空时,则word会替换原有值。
搜索"##"或"%%"时:字符串截取命令
${parameter#word}
从左向右以"word"为分割符进行匹配,然后只去掉第一次被word匹配的左侧内容,包含word
${parameter##*word}
用于截取命令的基名:相当于basename /path/to/cmd
从左向右以word为分隔符进行匹配,这里加上"*",表示去掉全部被word匹配的左侧内容,
${parameter%word*}
用于截取命令的目录路径:相当于dirname /path/to/cmd
从右向左以"word"为分隔符进行匹配,然后只去掉第一次被word匹配的右侧内容,包含word
${parameter%%word*}
从右向左以"word"为分隔符进行匹配,然后去掉全部被word匹配的右侧内容,包含word
跳出while、until、for循环的中断:
continue:结束本轮循环提前进入下一轮,但是并不退出循环。
break :直接跳出循环
exit # :直接跳出脚本,并给与数字"#"的返回执行状态码
跳出函数:
return #:表示直接中止整个函数,并返回执行状态码,但默认并不显示
/etc/rc.d/init.d/functions中定义的函数:(可以直接引用)
daemon:用于启动一个服务,后面跟上"--pidfile"表示指定服务启动后的daemon创建的pid文件位置
用法:daemon - -pidfile /PATH/TO/PIDFILE /PATH/TO/SERVICE_NAME
passed、success、failure表示服务启动后的成功与否的提示
搜索":-"
${parameter:-word}
使用(USE)默认值:
变量parameter的值如果未设置或为空,则使用word,但是word并不实际赋值给变量。
${parameter:=word}
赋予(Assign)默认值:
变量parameter的值如果未设置或为空,则将word实际赋予整个变量。
${parameter:?word}
显示错误信息:
变量parameter的值如果未设置或为空,则将会错误信息输出到标准输出。
${parameter:+word}
使用替换(Alternate)值:
当parameter的值实际为空时,则word不做任何替换。
当parameter的值实际不为空时,则word会替换原有值。
# DOC="" # echo $DOC 空 # echo ${DOC:-caduke} caduke # echo $DOC 空 # echo ${DOC:=caduke} caduke # echo $DOC caduke
搜索"##"或"%%"时:字符串截取命令
${parameter#word}
从左向右以"word"为分割符进行匹配,然后只去掉第一次被word匹配的左侧内容,包含word
${parameter##*word}
用于截取命令的基名:相当于basename /path/to/cmd
从左向右以word为分隔符进行匹配,这里加上"*",表示去掉全部被word匹配的左侧内容,
${parameter%word*}
用于截取命令的目录路径:相当于dirname /path/to/cmd
从右向左以"word"为分隔符进行匹配,然后只去掉第一次被word匹配的右侧内容,包含word
${parameter%%word*}
从右向左以"word"为分隔符进行匹配,然后去掉全部被word匹配的右侧内容,包含word
# which named /usr/sbin/named # CMD=/usr/sbin/named # echo ${CMD##*/} named # basename $CMD named # echo ${CMD%/*} /usr/sbin # dirname $CMD /usr/sbin
跳出while、until、for循环的中断:
continue:结束本轮循环提前进入下一轮,但是并不退出循环。
break :直接跳出循环
exit # :直接跳出脚本,并给与数字"#"的返回执行状态码
跳出函数:
return #:表示直接中止整个函数,并返回执行状态码,但默认并不显示
/etc/rc.d/init.d/functions中定义的函数:(可以直接引用)
daemon:用于启动一个服务,后面跟上"--pidfile"表示指定服务启动后的daemon创建的pid文件位置
用法:daemon - -pidfile /PATH/TO/PIDFILE /PATH/TO/SERVICE_NAME
passed、success、failure表示服务启动后的成功与否的提示
start() { gendsskey genrsakey if [ -f $lockfile ]; then echo -n "dropbear is already running."执行后不换行 failure直接显示带颜色的[ failed ] echo 这里再换行 exit 7 fi echo -n "Start dropbear" daemon --pidfile $pidfile $dropbear -p $port RETVAL=$? 启动dropbear服务并创建其pid文件 echo if [ $RETVAL -eq 0 ];then touch $lockfile创建锁文件 return 0 else rm -f $lockfile $pidfile return 1 跳出这个函数 fi }
相关文章推荐
- bash脚本之函数简单介绍、应用及函数的简单递归调用
- bash应用实例--交互式进程(如telnet)的自动处理脚本
- bash脚本之case语句应用,while、until和select循环应用及其示例
- bash编程脚本之三 read的应用
- 在脚本中应用alias,bash执行顺序的影响
- bash脚本编程之if分支结构和位置变量的应用以及交互示例
- bash脚本编程之for循环及应用
- bash实战篇-数组在工作中的实际应用(测试环境发布脚本) 推荐
- [Android]Linux BASH脚本中cmp比较命令的应用例子
- 【BASH】自动清理rman备份文件的脚本
- Bash脚本15分钟进阶教程
- BASH 脚本制作简单 Workflow - 更新 2014/6/17 12:00
- linux shell 脚本实现tcp/upd协议通讯(重定向应用)
- 第六课-第三讲06_03_bash脚本编程之五 字符串测试及for循环
- linux source、sh、bash、./ 执行shell脚本 区别
- ubuntu下source、sh、bash、./执行脚本的区别
- 自动化部署java的war应用到tomcat脚本
- adb批量操作bash脚本
- bash 脚本中途错误退出
- Linux Shell Bash 精彩脚本示例