zoukankan      html  css  js  c++  java
  • 《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.赋予权限,执行,会自动读出文档的内容



  • 相关阅读:
    LeetCode#22 Generate Parentheses
    重传
    数学问题——gcdgcl
    数学问题——十进制转N进制
    数据模型
    IEEE
    格与代数系统
    数据字典
    贪心算法
    群论
  • 原文地址:https://www.cnblogs.com/my_captain/p/7147654.html
Copyright © 2011-2022 走看看