也来说说shell的结束符

自从工作偏重管控面之后,接触的东西就多了,不管是各种OS,各种网络协议,还是各种编程语言等等。其中,shell就是其中一个。

同事写了一个watchdog用来检测某个进程的运行,每隔几秒就检测一次,如果进程不在了就拉起来。这个watchdog就是一个shell脚本,做成了centos中的一个服务,即放在/etc/rc.d/init.d下的包含start、stop、resatart参数的shell脚本。

其中判断参数的时候用了case这个特性,它与其他语言不同,没有switch关键字,且用右括号匹配某个值(shell术语叫模式),用双分号表示其他语言的break。为啥了解到写了呢?因为我看到了一个esac这个关键字,纳闷儿了,这个是啥意思?!于是搜索了一下,竟然是case的结束符!!对,就像if和fi一样。但是shell有一个例外,就是do的结束符不是od,而是done!!for和then这样的关键字是没有结束符的!!

你可能感兴趣的:(也来说说shell的结束符)