专栏首页程序员互动联盟【编程基础】Linux脚本新手入门篇

【编程基础】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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【编程之美】金刚坐飞机问题

    金刚坐飞机问题 问题: 现在有一班飞机将要起飞,乘客们正准备按机票号码(1, 2, 3, …N)依次排队登机。突然来了一只大猩猩(对,他叫金刚)。他也有飞机票,...

    程序员互动联盟
  • 【专业技术】css 3D transform 感性理解

    一、首先,情感化认识 CSS3中的3D变换效果,其实就是现实中姿势的变换; 虽然都是成年人,但考虑到仍有不少窝中待守的雏鸟,如果上面的解释想不过来,就想想以...

    程序员互动联盟
  • 学C语言好,还是学C++好呢?这两个专业在哪些领域用得最多?

    从事嵌入式开发十几年,基本上围绕着这两种编程语言展开,都可以直接操作底层的编程语言,用的越熟练越是感觉工具属性越强。虽然两种编程语言分属于不同的编程思想,用的时...

    程序员互动联盟
  • 黑科技 | 哈佛大学研制“布料”传感器,穿在身上时刻关注你的健康

    镁客网
  • 真正的 Tornado 异步非阻塞

    專 欄 ❈正小歪,Python 工程师,主要负责 Web 开发和日志数据处理。博客文章《真正的 Tornado 异步非阻塞》、《使用 JWT 让你的 REST...

    Python中文社区
  • video标签在不同平台上的事件表现差异分析

    然后列出可以用于视频状态监控的Media 事件(由媒介(比如视频、图像和音频)触发的事件,适用于所有html元素,但常用于 audio、embed、img、ob...

    IMWeb前端团队
  • Spark远程调试

    start-all.sh -> start-master.sh -> start-slaves.sh 1.Master启动的脚本 start-master....

    sparkle123
  • 大数据技术之_19_Spark学习_01_Spark 基础解析小结(无图片)

    2、Spark Standalone 即独立模式   2.1、解压安装包到你安装的目录。   2.2、拷贝 conf 目录下的 slaves 文件,将 slav...

    黑泽君
  • Spark应用(app jar)发布到Hadoop集群的过程

    记录了Spark,Hadoop集群的开启,关闭,以及Spark应用提交到Hadoop集群的过程,通过web端监控运行状态。 1.绝对路径开启集群 (每次集群重启...

    王小雷
  • DataFrame与RDD的互操作

    DataFrame Interoperating with RDDs 参考官网 http://spark.apache.org/docs/2.2.0/sql-...

    sparkle123

扫码关注云+社区

领取腾讯云代金券