set -euxo pipefail】的更多相关文章

有些开发人员会用Bash来实现很复杂的功能,就像使用别的高级语言一样.他可能觉得自己很牛逼但其他人早就想锤爆他了,Bash的可读性和可维护性远远低于任何高级语言.更要命的是,Bash并没有方便的调试工具和防错机制,出了问题你要排查半天. 在Ruby或者Python等高级语言里,你很容易知道错误是哪行什么类型的错误,还有IDE的Debugger加持.而Bash只能看源码,通过打印log等非常低效的方式调试. 本文将介绍Bash中 set -euxo pipefail,它们可以帮助你写出更容易维护也…
1. pidof 进程名 :获取进程的pid,例如 pidof memcached 得到5333 2. unset Shell变量 :取消设置一个shell变量,从内存和shell的导出环境中删除它,例如 unset JAVA_HOME 3. cat test.txt 1 > /dev/>& & :将标准输出重定向到回收站,并将错误输出重定向到标准输出,综合起来就是不输出任何信息.第一个1表示标准输出,可以省略:&1表示文件描述符1,若没有&则变成了文件1 4.…
线上有个网站业务部署在tomcat上,由于频繁上线修改,需要经常启动tomcat.tomcat服务自带的bin下没有重启脚本,下面分享一例脚本发版和tomcat重启脚本: 1)现将业务代码从svn里下载到本地,首次下载后,后续就使用svn update更新代码即可.     发版脚本: [root@redmine ~]# cd /Data/webroot_svncode/xqsj_app/banshanbandao/bsbd_war/ [root@redmine bsbd_war]# ls RO…
Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法. 先从expr命令开始梳理,expr 引出通用求值表达式,可以实现算术操作.比较操作.字符串操作和逻辑操作等功能. 1) 计算字符串长度字符串名为string,可以使用命令 ${#string} 或 expr length ${string} 两种方法来计算字符串的长度.若string中包括空格,…
http://www.ruanyifeng.com/blog/2017/11/bash-set.html set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本. 一.简介 我们知道,Bash 执行脚本的时候,会创建一个新的 Shell. $ bash script.sh 上面代码中,script.sh是在一个新的 Shell 里面执行.这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的…
set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本. 一.简介 我们知道,Bash 执行脚本的时候,会创建一个新的 Shell. $ bash script.sh 上面代码中,script.sh是在一个新的 Shell 里面执行.这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数. set命令用来修改 Shell 环境的运行参数,也就是可以定制环境.一共有十几个参数可以定制,…
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节. set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本. 一.简介 我们知道,Bash 执行脚本的时候,会创建一个新的 Shell. $ bash script.sh 上面代码中,script.sh是在一个新的 Shell 里面执行.这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数. set命令用来修改 Sh…
# 关于脚本: # 使用root用户执行此脚本,提前关闭selinux: # 执行脚本之前,hostsIP内的IP修改成自己的机器IP: # hostsIp内的IP数量如果有增加或者减少,for循环的变量也需要增减: # sshCopy内的root密码改成自己的root密码: # installRedis内配置了redis的密码,自行修改 # 关于环境: # 此脚本部署的是redis-6.0.5版本 # 脚本中的命令需要用到net-tools软件,如果没有网络,将ifconfig注释,打开ip…
1.set -e "Exit immediately if a simple command exits with a non-zero status." 在“set -e”之后出现的代码,一旦出现返回值非零,整个脚本就会立即退出. 2.set -o pipefail "If set, the return value of a pipeline is the value of the last (rightmost) command to exit with a  non-…
工作中经常在shell脚本中看到set的这两个用法,但就像生活中的很多事情,习惯导致忽视,直到出现问题才引起关注. 1. set -eset命令的-e参数,linux自带的说明如下:"Exit immediately if a simple command exits with a non-zero status."也就是说,在"set -e"之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出.有的人喜欢使用这个参数,是出于保证代码安全性的考虑.但有的时候,…