深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。

从第一行开始

我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行):

#!/bin/bash

此行会指引操作系统使用接下来指定的程序运行此文件。

有些人使用 #!/bin/sh 来让 sh 执行文件,这表示任何支持 POSIX shell 命令语言的 sh程序。为了用上 bash 拓展语法功能,我们就不这么用了。

如果你使用别的脚本,例如 /bin/tcsh,照着样子加个 #! 就行。

Shell脚本的格式是固定的,如下:

#!/bin/sh

#comments

Your commands go here

Shell程序的开发步骤:

1、编辑脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。

首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。

后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。

除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。

2、执行脚本的时候,要先将脚本文件的属性改为可执行的:chmod +x filename.sh

3、执行脚本的方法是:./filename.sh

下面我们从经典的“hello world”入手,看一看最简单的Shell脚本的模样。

#!/bin/sh

#print hello world in the console window

a = "hello world"

echo $a

Linux下的Shell编程(1)最简单的例子的更多相关文章

  1. Linux下的Shell编程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  2. linux下的Shell编程(3)shell里的流程控制

    if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了 ...

  3. Linux下的shell编程入门

    通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者 ...

  4. linux下的Shell编程(7)使用-x和-n调试shell程序

    我们也可以在Shell下调试Shell Script脚本,当然最简单的方法就是用echo输出查看变量取值了.Bash也提供了真正的调试方法,就是执行脚本的时候用-x参数. sh -x filename ...

  5. Linux下的shell编程(一)BY 四喜三顺

    Ctrl + Alt + Tvim文本编辑器:i(插入模式),v(可视模式),Esc(普通模式),:w(保存),:r(打开),:q(退出)gvim 文本编辑器vim的升级版gedit 更常用的文本编辑 ...

  6. Linux下的shell编程(三)BY 四喜三顺

    正则表达式:-------------------------------------------------------------------------------------------^   ...

  7. Linux下的shell编程(二)BY 四喜三顺

    Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如:    xiangqi@xiangqi ~$           root@xiangqi ~# ec ...

  8. Linux下的Shell编程(2)环境变量和局部变量

    Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型. 局部变量在本地数据区分配内存进行存储,这个变量归当前的Shell所有,任何子进 程都不能访问本地变量.这些变量与环境变量不 ...

  9. linux下的Shell编程(8)自定义函数

    Shell Script中也可以使用自定义的函数,其语法形式如下: functionname() { - }

随机推荐

  1. Solidity调试 - 实现变量打印

    Solidity没有print或console.log方法可以用来打印变量,这会给我们调试程序增加难度. Solidity有event功能,可以在event中记录变量信息,通过调用event方法也可以 ...

  2. php 后端跨域请求

    header("Access-Control-Allow-Origin: http://a.com"); // 允许a.com发起的跨域请求 //如果需要设置允许所有域名发起的跨域 ...

  3. Lucene就是这么简单

    什么是Lucene?? Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引 ...

  4. 使用BigDecimal报的错

    错误:java.lang.arithmeticexception: non-terminating decimal expansion; no exact representa  小数位膨胀 解决方法 ...

  5. 【Unity3D与23种设计模式】建造者模式(Builder)

    GoF中定义: "将一个复杂的构建流程与它的对象表现分离出来,让相同的构建流程可以产生不同的对象行为表现." 建造者模式可以分为两个步骤来实施: 1.将复杂的构建流程独立出来,并将 ...

  6. 初尝Eclipse

    一.选择开发工具 1.Eclipse和JDK 我所选用的是Eclipse开发工具,此工具可以用来编译JAVA语言,但windows系统没有内置的JAVA运行环境,所以需要下载JDK,用来配置JAVA的 ...

  7. angularjs常用事件

    1. 视图模板加载完毕 $scope.$on('$viewContentLoaded', function() { alert('view template loaded'); });

  8. 设计模式 --> (6)原型模式

    原型(Prototype)模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知 ...

  9. attr与prop html与text

  10. Android开发之漫漫长途 XVI——ListView与RecyclerView项目实战

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...