linux中的set命令:
工作中经常在shell脚本中看到set的这两个用法,但就像生活中的很多事情,习惯导致忽视,直到出现问题才引起关注。1.set-eset命令的-e参数,linux自带的说明如下:"Exitimmediatelyifasimplecommandexitswithanon-zerostatus."也就是说,在"set-e"之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出。有的人喜欢使用这个参数,是出于保证代码安全性的考虑。但有的时候,这种美好的初衷,也会导致严重的问题。真实案例:脚本a.sh开头使用了"set-e",且能正常运行。在几个月或更久以后,因需求升级,在脚本中增加了3行hadoop操作: 1 2 3 4 5 6 7 #!/bin/bash set -e ... /home/work/ ... /hadoop dfs-rmr /app/ ... /dir /home/work/ ... /hadoop dfs- mkdir /app/ ... /dir /home/work/ ... /hadoop dfs-putfile_1 /app/ ... /dir/ ... 这几行...