linux系统脚本编写的,Linux中shell脚本的入门编写

在前面的文章中已经给大家介绍了Linux中shell脚本的相关的文章,Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。下面将带大家进行shell脚本的编写入门。

下面将带大家编写一个简单的shell脚本

首先我们是去打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,名字简单易见就可以了,如果你用php写shell脚本,那么扩展名就用php好了这个就根据自己的实际情况来去命名使用,文中是新建了一个test.sh的文件。

e6fdf5e0ca2af3ad7ecb54c0846cee03.png

输入一些代码:

#!/bin/bash

echo"HelloWorld!"

“#!”这个符号表示的是一个约定的标记,它表示的是系统这个脚本需要什么解释器来执行,也就是系统将会是去使用哪一种Shell。echo命令它是用于向窗口输出文本,这一点我们是需要认识清楚的。

Linux中运行Shell脚本有两种方法。

(1)作为可执行程序

将上面的代码保存为test.sh,并cd到相应目录:

chmod+x./test.sh#使脚本具有执行权限

./test.sh#表示执行脚本

我们需要注意的是一定是要写成./test.sh,而不是test.sh这个格式。运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin,/sbin,/usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以如果是写成test.sh是会找不到命令的,因此是要用./test.sh来去告诉系统说,就在当前目录找。

通过这种方式运行bash脚本,在第一行中一定要写对,好让系统查找到正确的解释器。

这里的"系统",其实就是shell这个应用程序(想象一下WindowsExplorer)既然这个系统就是指shell,那么一个使用/bin/sh作为解释器的脚本是不是可以省去第一行呢?答案是肯定的。

(2)作为解释器参数

使用这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,看到下面的命令:

/bin/shtest.sh

/bin/phptest.php

这种方式运行的脚本,不需要在第一行指定解释器信息,多写也是没有太大的作用的。

再看一个例子。下面的脚本使用read命令从stdin获取输入并赋值给PERSON变量,最后在stdout上输出:

#!/bin/bash

#Author:abc

#Copyright(c)http://see.xidian.edu.cn/cpp/linux/

#Scriptfollowshere:

echo"Whatisyourname?"

readPERSON

echo"Hello,$PERSON"

运行脚本之后:看到下面的代码显示

chmod+x./test.sh

$./test.sh

Whatisyourname?

mozhiyan

Hello,abc

$

以上是Linux中的简单的shell脚本,如果是熟悉C语言的朋友们,或者会感觉语法上并不是有太大的一个差异,shell本的入门并不是非常的难,只需要用心的去学习,相信还是很快掌握的,真正难的是要自己去编写检测程序,这就需要有更高的一个基础了。

1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh   符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子我们使用/bin/sh来执行程序。   当编辑好脚本时,如果要执行该脚本,还必须使其可执行。   要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 1.1.2 注释   在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序使用注释。   如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 1.1.3 变量   在其他编程语言您必须使用变量。在shell编程,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写: #!/bin/sh #对变量赋值: a="hello world" # 现在打印变量a的内容: echo "A is:" echo $a 有时候变量名很容易与其他文字混淆,比如: num=2 echo "this is the $numnd" 这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量: 网管u家u.bitsCN.com num=2 echo "this is the ${num}nd"   这将打印: this is the 2nd 1.1.4 环境变量 由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本使用环境变量。 1.1.5 Shell命令和流程控制 在shell脚本可以使用三类命令:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值