Linux脚本(shell)编程(一) 简单入门HelloWorld

转载 2011年01月09日 19:50:00

      在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。shell是一种解释型编程语言,这些都不重要,重要的是怎么使用它。它是比较简单的一种语言,主要用于写一些脚本代码,一些批处理或安装程序。

      为了更好地理解,我们开始编写第一个shell脚本:“helloworld!”

      在某个目录下,新建一个文件,取名“helloworld.sh”

       

      再修改这个程序的运行权限,具体操作如下:

 

 

 

 

运行:

运行方式有两种

一. 到那个文件夹下,输入如下语句。

 

运行截图:

 

二. 到那个文件夹下,输入如下语句(它的必备条件是1.helloworld的路径设置正确,即这里的"#!bin/sh",2.helloworld.sh拥有运行权限)

 

 

 

运行截图:

 

 

 

 

问题解析:

1. sh的路径设置错误

查看helloworld.sh文件中的第一行是否为“#!bin/sh”

 

 

接下来尝试另一个例子:

 

 

 

我们看看每一句的意义:
       第一行,#! 是说明 hello.sh 这个文件的类型的,有点类似 Windows 系统下用文件后缀来表示不同文件类型的意思。Linux 系统根据 "#!" 及该字串后面的信息确定该文件的类型。在 BASH 中 第一行的 "#!" 及后面的 "/bin/bash" 就表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下。这一行的写法是固定的。


       第二行的 "# This is a ..." 就是 BASH 程序的注释,在 BASH 程序中从“#”号(没有“!”号)开始到行尾的部分均被看作是程序的注释,相当于C/C++语言中的“//”。
      第三行是为一个名称为 str 的变量赋值。
      第四行的 echo 语句的功能是把 echo 后面的字符串或变量的内容输出到标准输出中去。需要注意的是 BASH 中的绝大多数语句结尾处都没有分号。

 

      对于第三行,可能有人会问:在C/C++中,变量都属于某个类型,在这变量 str 的类型是什么呢?在 BASH 中变量定义是不需要的,没有 "int i" 这样的定义过程。如果想用一个变量,只要他没有在前面被定义过,就直接可以用,当然你使用该变量的第一条语句应该是对他赋初值了,如果你不赋初值也没关系,只不过该变量是空( 注意:是 NULL,不是 0 )。

 

 

       关于变量的使用,要注意以下几点:
 一,变量赋值时,“=”左右两边都不能有空格;
 二,BASH 中的语句结尾不需要分号(";");
 三,除了在变量赋值和在FOR循环语句头中,BASH 中的变量使用必须在变量前加"$"符号。 在比较详细的 bash 文档中,会规定使用变量要采用这样的形式:${STR},如果你的脚本出了莫名其妙的错误,不妨看看是不是这个问题造成的。

 

       BASH 中的变量既然不需要定义,也就没有类型一说,那是不是一个变量既可以存放整数,也可以存放字符串呢?对!
 一个变量即可以被定义为一个字符串,也可以被再定义为整数。如果对该变量进行整数运算,他就被解释为整数;如果对他进行字符串操作,他就被看作为一个字符串。

 

 

 

相关文章推荐

Linux_Shell Shell编程简介

这几天博主刻苦研究了下 Shell 编程,感觉 Shell 编程是一门非常强大的语言。 下面就Shell 编程的几个点进行下讲解: 0.Shell 编程的基本含义 (一个最简单的Shell 程...

Linux Shell编程case语句

Linux Shell编程case语句    case语句适用于需要进行多重分支的应用情况。         case分支语句的格式如下:  &...

Shell编程基础

写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单、灵活、高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作变得容易、简单、高效 ...

Linux脚本(shell)编程(二) 基本语法

shell的基本语法赋值一般采用以下形式:变量名=字符串1. “=”号两边是不能有空格的,不然会出错的。(这点初学者特别容易出错)2. 若赋值语句中,“=”后面没有任何内容,则该变量为一个空字符串,若...

将DOS批处理文件转换为Shell脚本(ZHUAN)

Appendix L. 将DOS批处理文件转换为Shell脚本 相当多的在PC上学习脚本的程序员都在运行DOS. 事实上, 残废的DOS批处理文件语言还是可以编写出一些比较强大的脚本来的, 虽然...

Linux下shell编程示例

什么是shell?Shell是一个命令解析器,是介于Linux操作系统的内核(kernel)与用户之间的一个绝缘层。shell脚本就是讲各类命令预先放入其中,方便一次性执行的一个程序文件,主要用于方便...

ASP.NET 中执行 URL 重写(转)

Scott Mitchell4GuysFromRolla.com适用范围:Microsoft® ASP.NET摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重写。URL 重...
  • Nocky
  • Nocky
  • 2007-11-02 15:52
  • 464
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)