简单介绍linux中的shell脚本

一、shell基本介绍

Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式。

Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。Shell脚本是需要解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行。作为程序设计语言,它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。

Linux的Shell种类众多,不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种就足够了。由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。所以本文主要介绍bash。

二、 shell脚本

查看当前的默认shell

 [[email protected] ~]# echo $SHELL

查询当前系统一共有哪些shell

 [[email protected] ~]# cat /etc/shells

三、 shell执行脚本

1、shell脚本简介

打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件chen.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好了。

进入一个空白的文件编辑器,输入一些代码,第一行一般是这样:

  #!/bin/bash

shell脚本第一行必须以#!开头,表示该脚本使用后面的解释器解释执行。#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,使用哪一种Shell。

2、自动创建文本

所有的脚本在编辑的时候都有标准格式,每次需要新建脚本文件时都需要添加标准格式,浪费时间。所以需要创建一个脚本文件,该脚本文件的作用是:在需要新建脚本文件时,直接使用’绝对路径/该脚本文件名+新建脚本文件名.sh‘ 进行编辑,打开文本编辑器。

(1)首先介绍能够自动创建文本的脚本文件,在root/bin/下创建一个 名为createsh.sh的脚本文件。

打开文本编辑器后输入以下内容;

#!/bin/bash                    
echo "#!/bin/bash" >$1          # echo 命令用于向窗口输出文本
echo "#--------------------------" >>$1       #‘ #’开头的部分为注释内容并把内容追加'>>'到$1
echo "#Filename:$1" >>$1             # 以下内容标记具体内容并追加到$1文件
echo "#Revision:1.0" >>$1               
echo "#Date:$(date +"%F")" >>$1           
echo "#Author:wang" >>$1
echo "#Email:[email protected]" >>$1
echo "#Website:www.magedu.com" >>$1
echo "#Description:" >>$1
echo "#--------------------------" >>$1
echo "" >>$1
chmod +x $1         #使$1文件具有执行权限
vim + $1           #自动生成并执行$1

(2)新建名为chen.sh 的脚本文件 ,执行‘/root/bin/createsh.sh chen.sh ’命令直接进入编辑。

进入文本编辑器,里面已经含有/root/bin/createsh.sh中的内容。

四、变量

   变量分为局部变量和环境变量。

局部变量:仅对当前shell有效,子shell不继承。

环境变量:也叫全局变量,对当前shell和子shell均有效。

1、局部变量

局部变量仅对当前shell有效,子shell不继承!可通过set命令查看所有的局部变量。

[[email protected] ~]# a=666      
[[email protected] ~]# echo $$   #查看当前shell号 为3058
3058
[[email protected] ~]# echo $a   
666
[[email protected] ~]# bash      #进入子shell
[[email protected] ~]# echo $$    #查看当前shell号 为3123
3123
[[email protected] ~]# echo $a
                            #不再显示666
[[email protected] ~]#

2、环境变量

    环境变量:也叫全局变量,对当前shell和子shell均有效。env 查看所有的环境变量。

   export 局部变量名
   export 变量名=值

[[email protected] ~]# export name="chen"
[[email protected] ~]# echo $name
chen
[[email protected] ~]# echo $$       #查看当前shell号 为3123
3123
[[email protected] ~]# bash           #进入子shell
[[email protected] ~]# echo $$        #查看当前shell号 为3711
3711
[[email protected] ~]# echo $name
chen
[[email protected] ~]# bash             #再次进入子shell,可理解为孙shell
[[email protected] ~]# echo $$          #查看当前shell号 为3721
3721
[[email protected] ~]# echo $name
chen

     通过  xport 变量名=值 设置环境变量,在当前shell有效(echo $$ 可以查看当前shell号),bash进入子shell,变量依然有效。

      3、 unset 取消变量

原文地址:http://blog.51cto.com/13869720/2151468

时间: 2024-10-04 03:30:41

简单介绍linux中的shell脚本的相关文章

Linux中执行shell脚本的4种方法

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/root/bin目录中并已有执行权限(添加权限的方法:chmod +x hello.sh). 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: ./ 的意思是说在当前的工作目录下执行hello.sh.如果不加上

Linux中执行shell脚本

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下 bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限.方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:复制代码 代码如下: cd /data/shell./hello.sh ./的意思是说在当前的工作目录下执行hello.s

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

Linux中的shell脚本编程——函数

概述: 本章节将总结while,for循环语句的特殊用法,在不同的场景当中,更能发挥其功能和价值.除此之外,还会介绍一种特殊的循环语句select语句,实现菜单的作用.最重要的是讲解shell脚本编程中函数的用法.这些内容都要熟练掌握. 一.循环语句的特殊用法: 1.while循环的特殊用法(遍历文件的每一行): □语法:while read line; do 循环体 done < /PATH/FROM/SOMEFILE □意义:依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将

Linux中的shell脚本编程——数组 ,高级字符串操作 ,高级变量 ,配置用户环境

概述: 概述: 本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境. 一.函数和位置参数扩展 1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉     2.匿名函数的使用 第一篇:数组 一.数组的定义: 1.变量:存储单个元素的内存空间 2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 3.数组名和索引 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开

Linux中执行shell脚本命令的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

Linux中执行shell脚本的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

Linux中的shell脚本编程---语句控制

概述: shell脚本的语句控制 □前面提到了过程式编程语言有三种过程: 顺序执行:按照顺序一条一条语句执行: 选择执行:按照条件进行选择执行: 循环执行:按照给定的循环条件进行循环执行. □其中,顺序不需要特定的控制,只需按照语句依次执行即可:选择执行,则需要特定的控制语句(如:if,case)来判断执行:循环执行则需要特定的循环控制控制(如:for,while等). 一.使用read 命令来接受输入 □在bash脚本编程过程当中有时程序需要与用户之间进行交互,如提示用户输入一些参数等,此时,

linux中调试shell脚本

原来的脚本Check.sh: monfile="/var/log/test/testMon.txt"logfile="/var/log/test/testMon.log"touch $monfile ... 该脚本是在window里编辑的,编辑后上传到linux的 问题: 运行后,目录下出现的文件是testMon.txt??和testMon.log?? 就是会有乱码 修改过程: 执行sh -x Check.sh,就发现后面多了\r:monfile=$'/var/lo