日常脚本习惯:
(1)所有字符串用引号引起来。比如grep abc> run.log,类似含有“>”等特殊符号的命令,如果不加引号,在执行时可能会带来不可预料的后果。 建议在输入参数时,先输入一对双引号,再返回来输入参数值,这样出错的可能性就小很多了。
shell中各种引号的区别:
1)双引号,也称为弱引号,如果参数是用双引号括起的话,Shell解释器会先扩展双引号里面元字符引导的变量,字符代表的意义。
USER="selen";
echo "$USER is my name."
selen is my name.
2)单引号,也称为强引号,在单引号里面的所有字符,包括元字符,都会当成没有特殊意义的字符。
USER="selen";
echo "$USER is my name."
$USER is my name.
3)反引号,将两个反引号之前的字符串作为命令执行,并在当前位置输出命令的标准输出。和 $()有相同的功能。
lst=`pwd`
echo $lst
/usr/local/smsmt/sh
4)一些例子
#如何输出一个单引号
echo ""
echo \
#如何输出一个双引号
echo """
echo "
#单引号中如何输出变量的值,即单引号中如果还有一层单引号,可以开启变量的替换。
USER="selen";
echo $USER is my name.
selen is my name.
(2)所有命令的参数数指定,尽量不要用默认,而是明确指出。比如使用ls -lrht想取到文件的修改时间,如果不指定时间格式的话,会使用本机默认的时间格式,在不同的机器,甚至不同的用户下不会不同的执行结果;最好加上如--time-style="full-iso"之类的格式限定参数。
关于rm操作的总结:
运维人员经常需要定期在后台删除一些东西,如日志、过期的数据等,这些都涉及到rm操作;
进行rm操作有很强的风险,一定要慎之又慎,否则会造成很严重的后果,比如需要删除某个目录下的某些数据,
你输入了rm /
此时你手一抖或者无意识地敲到了回车,完了。。。
更杯具的是,你是用root用户登陆的。。。
为了降低风险,在rm操作时采用以下步骤:
a、先用ls命令列出你所要删除的文件;
b、再确认一遍所列文件是否全是需要删除的文件;
c、确认完毕后,将命令的ls修改为rm,然后回车,完成删除操作;
d、多输入几次ls命令,防止无意中按到向上箭头+回车,又一次杯具的上演;
ps:在日常的运维工作中,一定不要先输入rm然后再输入路径,这样很容易造成误操作,切记;人不在,记得锁屏,并且主窗口
不要是O-secureCrt,否则也有出错的风险;能脚本例行化的,采用脚本例行化,以尽量规避认为操作的风险。
(1)所有字符串用引号引起来。比如grep abc> run.log,类似含有“>”等特殊符号的命令,如果不加引号,在执行时可能会带来不可预料的后果。 建议在输入参数时,先输入一对双引号,再返回来输入参数值,这样出错的可能性就小很多了。
shell中各种引号的区别:
1)双引号,也称为弱引号,如果参数是用双引号括起的话,Shell解释器会先扩展双引号里面元字符引导的变量,字符代表的意义。
USER="selen";
echo "$USER is my name."
selen is my name.
2)单引号,也称为强引号,在单引号里面的所有字符,包括元字符,都会当成没有特殊意义的字符。
USER="selen";
echo "$USER is my name."
$USER is my name.
3)反引号,将两个反引号之前的字符串作为命令执行,并在当前位置输出命令的标准输出。和 $()有相同的功能。
lst=`pwd`
echo $lst
/usr/local/smsmt/sh
4)一些例子
#如何输出一个单引号
echo ""
echo \
#如何输出一个双引号
echo """
echo "
#单引号中如何输出变量的值,即单引号中如果还有一层单引号,可以开启变量的替换。
USER="selen";
echo $USER is my name.
selen is my name.
(2)所有命令的参数数指定,尽量不要用默认,而是明确指出。比如使用ls -lrht想取到文件的修改时间,如果不指定时间格式的话,会使用本机默认的时间格式,在不同的机器,甚至不同的用户下不会不同的执行结果;最好加上如--time-style="full-iso"之类的格式限定参数。
关于rm操作的总结:
运维人员经常需要定期在后台删除一些东西,如日志、过期的数据等,这些都涉及到rm操作;
进行rm操作有很强的风险,一定要慎之又慎,否则会造成很严重的后果,比如需要删除某个目录下的某些数据,
你输入了rm /
此时你手一抖或者无意识地敲到了回车,完了。。。
更杯具的是,你是用root用户登陆的。。。
为了降低风险,在rm操作时采用以下步骤:
a、先用ls命令列出你所要删除的文件;
b、再确认一遍所列文件是否全是需要删除的文件;
c、确认完毕后,将命令的ls修改为rm,然后回车,完成删除操作;
d、多输入几次ls命令,防止无意中按到向上箭头+回车,又一次杯具的上演;
ps:在日常的运维工作中,一定不要先输入rm然后再输入路径,这样很容易造成误操作,切记;人不在,记得锁屏,并且主窗口
不要是O-secureCrt,否则也有出错的风险;能脚本例行化的,采用脚本例行化,以尽量规避认为操作的风险。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3432/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表