前言
one line code script的脚本组织形式实际上我自己使用的非常的少,更多情况下我宁愿通过快捷的gen_sh/gen_perl/gen_python快速生成一个脚本框架,然后补充几行代码来替代重复劳动。但是客观的讲,一行式脚本还是有一些了解的必要性,有时候确实能极大的提升效率。
正题
最开始接触的一行式其实就在makefile工具中:
ifeq ($(seed), random)
SEED := $(shell python -c "from random import randint; print randint(0,99999999)")
#SEED := $(shell perl -e "print int(rand(100000000))")
else
SEED := $(seed)
endif
其中两个一行式的作用就是,产生仿真所使用的随机数:
[xiaotu@xiaotu-eda ~/my_work/vcs_demo]$python -c "from random import randint; print randint(0,99999999)"
26922252
[xiaotu@xiaotu-eda ~/my_work/vcs_demo]$perl -e "print int(rand(100000000))"
34254654
当然了,这个玩意藏的比较深,一般都在项目组makefile好几层里面。
其实呢,我们平时敲的linux下的命令都可以认为是shell一行式脚本,最经典的当然还是三剑客grep/sed/awk,这三个大佬再结合xargs和流处理总是能碰撞出一些奇奇怪怪的用法,比方说我之前特别喜欢的一句代码: