bash是个功能强大的模块化语言,而且模块之间提供强关联和交互操作。这让它变得灵活、简洁又功能强大。
作为一个msdos + windows的多年死忠粉,在全面转向linux的一年来,深刻的体会到这点。
MS很照顾用户,一切都是已经完美的,但太完备的东西往往缺乏灵活性。
图形化限制了程序员的想象力,也为他们带来某种不便。
当我们使用linux时,起初你会发现它生硬坚涩、距人千里。
但是当你把自己定位程序员时,你发现它的设计有多么完美,你可以如此轻松、简洁、完美的完成任务。
而你需要做的只是写几行扩展名为.sh的脚本,这种脚本远比ms.bat更加灵活有效。
这种强大的功能,让linux在服务器市场取得了绝对优势,即使它到现在还是不够“亲民”。
顺便说一句,macOS在图形化和灵活性方便,就平衡的很好。所以我现在是mac狗。
哦,扯远了。我本来只是想记录下来,我在写代码时,关于if的小总结。
直接列出了,关键问题不多废话,懂的只懂,不懂也不解释。
if [ $msg = “” ];then #提示错误:too many arguments
if [[ $msg=“” ]];then #等号二边无空格,直接赋值了,不可以.
#为什么不用一个等于是赋值,二个等于是相等判断。
#用个空格,太不走寻常路了吧。
if [[ $msg = “” ]];then #这样写就对了
if [ -z $msg ];then #提示错误:too many arguments
if [[-z $msg]];then #-z: command not found
if [[ -z $msg ]];then #good
if [ ! $msg ];then #提示错误:too many arguments
if [[! $msg]];then #-z: command not found
if [[ ! $msg ]];then #good
if[[ ! $msg ]];then #syntax error near unexpected token `then
#if后的空格 是必须的,后面;then 有没空格都行
总结:能空就空,不能空别瞎空。二个中括号,提供更好的容错性。
这是关于字串相等判断的写法,我按照过去的直觉写,总是出现各种错误,于是测试总结了一下。
虽然到现在,我还是觉的bash脚本很丑。但是关键是能力强啊。
你们写代码的,有几个长的帅的?