Shell开发在运维中的经验总结
9)对付打包后还需举办压缩的文件,提议行使管道举办处理赏罚,如: 不提议两部门分隔执行: 10)行使ps呼吁筛选历程时,如能确定历程所属用户,必需在参数中指定用户名称,,如其输出作为kill呼吁的输入,则必需指定历程所属用户,如: 这里先容的首要是一般shell编写中碰着较量潜伏或看似简朴,却难以发明的“坑”,编写中应只管停止行使,行使更优的要领停止重蹈覆辙。 1)更新文件行使>不消cp 行使>修改和回退文件时,保存原文件的属组和权限,停止行使cp时权限属组被修改。 2)行使kill前确认 要害字用-w 准确匹配字段; kill前后都保存现场, 两次ps -ef|grep -w 要害字|grep -v grep >>/tmp/kill_历程名_.backup; 删除前要校验,获取历程号是否独一,停止多杀或误杀的环境。 3)行使rm前确认 删除前备份删除工具信息,停止行使变量,直接行使文件和目次名; 假如必需行使时,删除前,提议搜查停止误删,删除目次和文件信息保存: 提议禁用find遍历根目次举办查找,同时删除前举办确认,停止多删或误删的环境。 4)For轮回的坑 for轮回的in前提按空格来区分,停止进入不正确或死轮回。 5)while轮回的禁忌 假如还想行使轮回中的变量,不要while团结管道行使。 6)慎用cp 这句话根基上正确,但同样有空格分词的题目。以是该当用双引号: 可是假如凑巧文件名以 - 开头,这个文件名会被 cp 看成呼吁行选项来处理赏罚。 可以试试下面这个: 但也也许再碰上一个不支持 -- 选项的体系,以是最好用下面的要领: 7)慎用cd 停止行使cd到操纵目次再操纵的方法,也许导致进入目次失败,误删除,如: 提议如下: 8) 用[[ ]]取代[ ] 当$var为空时,上面的呼吁就酿成了[ ="bar" ] 相同地,当$var包括空格时: [ space words here = "var" ]两者城市堕落。以是该当用双引号将变量括起来: [ "$var" = var ] 险些美满了。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |