‘Shell’ 分类的存档
在Linux下面用Shell命令很爽,有时编程时情不自禁就想popen或system一下,然后就接个shell命令行字符串,搞定
其实我们平时应该尽可能少用popen之类的API来调用shell命令,虽然我知道这是很懒很方便的做法
最好还是用相应编程语言的API来实现,这样可以保证性能,也可以保证稳定性(内存不够时popen之类的东西会失败的)
今天改一个bug的时候,遇到一个问题卡住了,想了很久,最后用比较简洁的方法解决了
之后做数据中心,需要删除一些临时文件的,这些临时文件只能是生成1分钟后才能删除
当时解决方法是递归这个目录,并用mtime来判断时间,再删之
这次遇到的问题是在linux下的,很自然会想用shell命令行来代替PHP解决之了,先把解决方解贴出来
实际看来,应该叫函数别名比函数指针恰当吧,但我之前还不知道可以这么弄。 只是今天看回自己一年前写的一个脚本程序,发现很多冗余代码,于是就重写了。 重写后发现只要50%的代码,很简洁,得益于这个函数别名了。 fun1( ) { echo “I am fun1!” } fun2( ) { echo “I am fun2!” } fun1 fun2 fun3=fun1 $fun3 结果是: I am fun1! I am fun2! I am fun1! 其实就这么回事了 然后,你还可以这样 idx=1 fun$idx 结果是: I am fun1!
作者: slackcode
pkgtools版本: pkgtools-12.1.0-noarch-7.tgz
我并不是什么高手牛人,我只是路过,觉得好玩,所以拿出来看看,希望与大家分享,共同学习
如有转载,请注明出处:)
快放假啦,一直好想写一个《剖析slackware pkgtools系列》,这次放到这个假其完成。除此外当然还有SoonDo布置的任务,还要读一个文学作品,其它时间当然是玩啦哈哈。 对于《剖析slackware pkgtools》内容,先在这里列个提纲先,有兴趣的读者可以跟进: 1、剖析slackware pkgtools之概述篇 2、剖析slackware pkgtools之installpkg篇 3、剖析slackware pkgtools之upgradepkg篇 4、剖析slackware pkgtools之removepkg篇 5、剖析slackware pkgtools之explodepkg、makepkg篇 6、剖析slackware pkgtools之makebootdisk篇 7、剖析slackware pkgtools之pkgtool篇 我不是脚本高手,我希望借此机会来学习一下shell脚本,并且也可以深入理解slackware的包机制,欢迎到时一起讨论:-)
之所以要在shell里使用函数,大多数因为脚本中有大量重复的代码,这些代码可以整理封装为函数使用,使脚本更加易读,维护性也更好,下面就来说说如何在Linux shell脚本里使用函数。 在shell脚本里,定义函数有两种格式: function d2u() { dos2unix $1; chmod 0777 $1; return; } # 或 d2u() { dos2unix $1; chmod 0777 $1; return; } # 下面是函数调用方法,其实与shell命令执行基本是一样的 d2u /home/lcl/test.sh # 那么传进这个函数里,$1即为/home/lcl/test.sh,所以函数展开为 dos2unix /home/lcl/test.sh; chmod 0777 /home/lcl/test.sh; 这个不就等于把这个函数另存为另一个可执行脚本调用吗? 是的,我自己是这样记Shell脚本里函数的用法。 脚本保存后别忘了chmod a+x一下,变为可执行哦
