【编程基础】Linux脚本新手入门篇

shell脚本在我们日常开发中比不可少,开源代码编译移植更是经常使用,用它来记录和管理我们编译。或许有人觉得开源代码,都为我们实现了,如configure MakeFile等。我们还有必要去自己在写吗?

答案是肯定的,我们用少量的脚本来完成重复的工作,提高效率。比如

configure有一堆参数需要我们设置,且有x86版本和arm版本编译它们的配置参数各不相同,一般情况下我会新建两个脚本来解决,建立一个build-x86.sh 和build-arm.sh 来配置编译参数。

我们就写个说说如何写个简单脚本:

用vi 编辑一个hello.sh

#!/bin/bash # This is a very simple example echo Hello World

这样最简单的一个 BASH 程序就编写完了。这里有几个问题需要说明一下:

一,第一行的 #! 是说明 hello 这个文件的类型的,后面的 "/bin/bash" 就表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下,如果你的 Linux 系统比较特别,bash 也有可能被存放在 /sbin 、/usr/local/bin 、/usr/bin 、/usr/sbin 或 /usr/local/sbin 这样的目录下。

二,第二行是注释这里写一些有用的信息

三,echo 语句的功能是把 echo 后面的字符串输出到标准输出中去。由于 echo 后跟的是 "Hello World" 这个字符串,因此 "Hello World"这个字串就被显示在控制台终端的屏幕上了。

四,如何执行该程序

一种是显式制定 BASH 去执行:

$ bash hello.sh 或 $ sh hello.sh

或者可以先将 hello.sh 文件改为可以执行的文件,然后直接运行它,此时由于 hello.sh 文件第一行的 "#! /bin/bash" 的作用,系统会自动用/bin/bash 程序去解释执行 hello 文件的。

$ sudo chmod u+x hello.sh $ ./hello.sh

这样一个简单的脚本就出来了,不过这样的脚本没有什么实用性。

其实脚本也是一种语言,可以用他执行任务,开启系统服务监测程序的运行状态。

当你真正了解它后,它远不止上面这些功能用途。脚本是编程的延伸,我们将一步步的深入学习shell脚本。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-05-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏随心DevOps

[实战篇] Python 运维中使用并发

今天从大哥手里接了一个需求: 验证一下新的 Docker 镜像仓库(Docker Registry)是否迁移成功了 简单粗暴的方法就是拿到老仓库中的镜像列表(I...

38612
来自专栏林德熙的博客

win10 uwp 无法附加到CoreCLR 查询临时变量:

本文说的是在vs调试无法附加到CoreCLR。拒绝访问。已经如何去解决,可能带有一定的主观性和局限性,说的东西可能不对或者不符合每个人的预期。如果觉得我有讲的不...

471
来自专栏mathor

第1章 必须掌握的Linux命令

 命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀(示例请...

711
来自专栏数据和云

一篇文章带你读懂 MySQL 和 InnoDB

原文地址 | http://draveness.me/mysql-innodb.html

1115
来自专栏Java成神之路

简单分析什么是SQL注入漏洞

现在很多人在入侵的过程中基本都是通过SQL注入来完成的,但是有多少人知道为什么会有这样的注入漏洞呢?有的会随口说着对于字符的过滤不严造成的。但是事实是这样吗?我...

1682
来自专栏我的博客

php上传大文件配置之—PHP.ini配置

打开php.ini文件,修改完毕后重启服务器。测试下上传文件。。。。(嘻嘻,是不是传上了很大的文件?) 1、文件上传时存放文件的临时目录。必须是 PHP 进程所...

3864
来自专栏文渊之博

NOSQL(一)--Redis

简介最近开始接触NoSQL,翻译过来就是 not only sql,非关系型数据库吧。其中主要有四大类NoSQL,今天我们介绍其中的一种键值对的NoSQL:Re...

1805
来自专栏散尽浮华

Mongodb主从复制/ 副本集/分片集群介绍

前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replic...

63210
来自专栏数据和云

腾讯游戏DBA利刃 - SQL审核工具介绍

作者介绍 ? 韩全安(willhan) 华中科技大学,硕士,现代数据库方向。2013年毕业,就职于腾讯到今,工作项目:TMySQL、SQL审核、InnoDB列压...

6306
来自专栏FreeBuf

Fuzz自动化Bypass软WAF姿势

0×00 前言 在我刚接触安全这块时候遇到注入有WAF的网站时候无从下手,寻找各种有关绕过waf的文章,在网页浏览器上使用SQL语句为了绕过WAF变了个法加了些...

49010

扫码关注云+社区