《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.赋予权限,执行,会自动读出文档的内容
《Advanced Bash-scripting Guide》学习(三):自删除脚本和自读取内容的脚本的更多相关文章
- advanced bash shell guide读书笔记
http://note.youdao.com/noteshare?id=fc23a679849b4627d131d3ef07c74a71
- 《DOM Scripting》学习笔记-——第八章 充实文档的内容
本章内容 一.一个为文档创建“缩略词语表”的函数 二.一个为文档创建“文献来源链接”的函数 三.一个为文档创建“快速访问键清单”的函数 利用DOM动态的收集和创建一些有用的辅助信息,并把它们呈现在网页 ...
- 《DOM Scripting》学习笔记-——第七章 动态创建html内容
本章内容: 1.动态创建html内容的“老”技巧:document.write()和innerHTML属性 2.DOM方法:createElement(),creatTextNode(),append ...
- 《DOM Scripting》学习笔记-——第二章 js语法
<Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...
- 2017.2.28 activiti实战--第五章--用户与组及部署管理(三)部署流程及资源读取
学习资料:<Activiti实战> 第五章 用户与组及部署管理(三)部署流程及资源读取 内容概览:如何利用API读取已经部署的资源,比如读取流程定义的XML文件,或流程对应的图片文件. 以 ...
- 《DOM Scripting》学习笔记-——第三章 DOM
<Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...
- [Bash Shell] Shell学习笔记
1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...
- [转帖][Bash Shell] Shell学习笔记
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
- ElasticSearch7.3学习(三十二)----logstash三大插件(input、filter、output)及其综合示例
1. Logstash输入插件 1.1 input介绍 logstash支持很多数据源,比如说file,http,jdbc,s3等等 图片上面只是一少部分.详情见网址:https://www.elas ...
随机推荐
- java integer String之equals vs ==
Integer a = new Integer(123); Integer b = new Integer(123); System.out.println(a == b); System.out.p ...
- 笔记:zookeeper Hello World
下载zookeeper-3.4.6 , 试用了一下 standlone 启动 ./bin/zkServer.sh start 注: Usage: ./bin/zkServer.sh {start|st ...
- Python实现下载进度
# encoding:utf-8 import urllib import os def Schedule(a,b,c): ''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 '' ...
- Red Gate系列 - SQL各种工具
Red Gate系列 - SQL各种工具 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程 Red ...
- github 上 机器学习 的库推荐列表
awesome-machine-learning: https://github.com/josephmisiti/awesome-machine-learning
- BADI:LE_SHP_DELIVERY_PROC-增强在交货处理中
1.所得方法清单: CHANGE_FCODE_ATTRIBUTES Control Activation of Function CodesCHANGE_FIELD_ATTRIBUTES Contro ...
- split命令
语法:split [OPTION]... [INPUT [PREFIX]]常用参数说明: -a, --suffix-length=N generate suffixes of l ...
- 剑指offer 面试12题
面试12题: 题目:矩阵中的路径 题:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格 ...
- 剑指offer 面试67题
面试67题: 题目: 链接:https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e?commentTags ...
- 主攻ASP.NET MVC4.0之重生:Jquery Mobile 列表
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...