《Advanced Bash-scripting Guide》学习(三):自删除脚本和自读取内容的脚本

本文所选的例子来自于《Advanced Bash-scripting Gudie》一书,译者 杨春敏 黄毅

自删除脚本


#!/bin/rm

#自删除脚本

#当你运行这个脚本时,基本上什么都不会发生...除非这个文件消失不见


WHATEVER=65


echo "This lines will never print(betcha!)."

exit $WHATEVER   #没关系,这个脚本是不会在这里退出的

 

  “为什么我们写脚本开头要加#!/bin/bash ?因为#!(即sha-bang)告诉系统这个文件需要一个解释器,而/bin/bash就是这个文件的解释器,所以开头可以是python可以是/bin/ls可以是/bin/sed,可以是/bin/rm。可能是一个shell, 也可能是一个程序语言, 也可能是一个工具包中的命令程序. 这个解释程序从头开始解释并且执行脚本中的命令(从sha-bang行下边的一行开始),关于#!输入man magic可以查询。我们赋予某个脚本文件如test.sh执行的权限那么就可以直接输入test.sh运行不是吗?相当于输入/bin/bash test.sh (sh test.sh) 所以解释器为rm时那样执行就相当于执行/bin/rm test.sh所以当然文件被删除了”,这是红联linux上网友dujingxi的解释,我觉得很好,就引过来了。这句话恰好的解释了shell中的命令解释器,原文地址是http://www.linuxdiyf.com/viewarticle.php?id=274248。

脚本执行结果



  Result:rm.sh脚本自动消失,什么都不会出现

  abs中还有一句话:当然,你还可以试试在一个README文件的开头加上#!/bin/more,并让它具有执行权限.结果将是文档自动列出自己的内容.

  我们尝试一下:

1.首先用find命令查找一下根目录下的所有后缀为README的文件


2.我们以第一个“/usr/share/mysql/charsets/README”为例,在文件开头加入#!/bin/more


3.赋予权限,执行,会自动读出文档的内容



 

转载于:https://www.cnblogs.com/my_captain/p/7147654.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值