Daily Archives: February 2, 2012

shell下的printf

这几周都在百度旅游上写游记,博客上长的草都快枯死了,游记还没写完,估计短时间也很难完成了,先在博客上来篇搞笑的吧。 前两天用shell的printf用出了一个笑话。一般可能大家更习惯printf里面带变量的用法是printf XXXX${XXXX}XXX吧(或者直接用echo),但是因为我比较圡,所以那天用C的用法用了一下(printf XXX%sXXX $XXX)然后发现了一个“惊天大秘密”!那就是如果$XXX里面含有\t(tab键)的时候,你在$XXX后跟的每一个字符都会自动替换掉$XXX中的\t!!而更诡异的是如果我不用$XXX,而直接把$XXX里面的值作为第二个参数传入时就没有这个问题。当时我是百思不得其解啊,差点就想写到周报的issue里去了(当时居然没想到写博客!!可见这个站点的草是有多高了)。但是后来细想一试,才发现其实是因为$XXX外面没有引号,在SHELL里面是直接展开的,而\t把$XXX里面的变量全拆成一个个参数了&-___-b……发现这个问题之后的第一个反应就是过了个年果然又老了一岁啊!!~ 唉,新年第一篇就这么水。在这祝大家新年快乐了!~^_^

Posted in Uncategorized | Leave a comment