Categories
日常应用

简单的shell

好像一直没怎么正儿八经的写shell....今天不得不动手写了。反正就是摸着石头过河吧。

for i in {1..20}
do 
    mydate=$(date -v-"${i}d" +"%Y/%m/%d")
    echo "------Now importing:"$mydate"--------"
done

这样就实现了一个简单的for循环。

  • do 和done完成一个循环...
  • date是给日期的,mac和linux貌似语法有点不一样,date -v-1d 这样是往前减一天。后面那个是日期的格式。
  • 然后等号旁边不能有空格,这个和r差别好大。
  • 然后如果command中间要引用变量,需要${}一下,有点像r的paste()然后eval(parse())。
  • 1..20相当于r的1:20,给出一个整数序列。echo就是打印到屏幕上了。

暂时就这些,至少现在用起来是正常的哈哈。

11 replies on “简单的shell”

xargs大法好。写bash当然要一行帝。。

seq 1 20 | xargs -I{} date -d'-{}day' +'---importing:%Y/%m/%d---'

而且对科学计算而言,xargs牛逼的地方还在于可以随时并行。加一个xargs -P 12就会开12个进程一起跑。如果有机群的话还可以用parallel -P 120在不同的机器上一共开120个进程,大家一起跑。详情参见https://grapeot.me/easy-and-cheap-cluster-building-on-aws.html

哈哈,bash很强的啦。不过有限的时间还是要投入到无限的革命事业中去(划掉)要用在刀刃上。看看提高统计分析内功还是shell编程外功哪个更能提高效率(a.k.a. 赚的钱)啦。

哈哈,太羡慕你们了,17-mile drive和一号公路近在咫尺,就算去Half Moon Bay或者金门大桥也很好看啊。。

Comments are closed.