Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 编程 > Shell > 正文

Shell语言二 bash简介

时间:2014-05-31 00:18 来源:未知 作者:www.51ou.com 阅读:

一、初识bash

Bash是一种解释型语言,但它也提供了交互式接口,支持变量,因此提供了编程环境,所以可以称bash为程序语言。

解释型语言属于弱类型语言,其特点为:

1.它不强制区分变量类型,即无论存储什么数据,默认均以字符格式(ASCII码)存储。

2.不需要事先声明变量,需要时直接使用,直接赋值;

在弱类型语言中,定义变量通常为:

[set] VAR_NAME=Value    //set可以省略

引用变量为:

${VAR_NAME}            //大多数情况下花括号可以省略

 

       花括号不能省略的情况:有时候变量后面紧接着一个字符,会造成变量名无法识别,此时

   就需要花括号来加以区分,如以下例子:

   # Animal=”Pig”

   # echo “there is a $Animal.”

   # echo “there some $Animals.”

   # echo “there some {$Animal}s.”

   wKioL1NiW0jgfQIsAADl7hIzcsY943.jpg

 

撤销变量:释放之前占用的内存空间已供其他进程或程序使用

unset VAR_NAME        //注意只用变量名,不加$

wKiom1NhAKvBifo-AAOD14a5e-4468.jpg

 

二、bash的主要特性

1.使用变量

2.支持快捷键,且快捷键可以自定义

3.支持命令别名(见“10_Linux基础知识及命令————创建和删除文本文件”)

   使用别名的格式为:

# alias 别名=’正常命令’

   撤销别名的格式为:

# unalias 别名

   比如windows中我们使用cls来清屏,而在Linux中使用clear命令。如果想保留windows的使用习惯,就可

以使用别名:

   # alias cls=‘clear’

   # unaias cls

wKiom1NiXCDToXKlAAGOv-QT4rA262.jpg

   如果不想使用别名而使用原来的命令,则可以使用“\命令”。

           注意:别名只对当前shell有效,即使是同一个用户重新启动的shell,也不能使用别名;如果要使

       别名永久有效,需要定义在配置文件。


   4.支持命令行的展开:{}(见“8_Linux基础知识及命令————目录的创建与删除”),~ (表示命令的家目录)

5.支持管道

6.支持输入、输出和重定向

7.支持编程

8.支持命令行自动补全和路径补全    

a)命令补全:

采用的方式是在输入命令的部分字符后,按下tab键,bash会自动搜索在PATH环境变量下所有可以执行文件,以补全此命令。但需要注意的是,输入的部分字符必须能够唯一标识某命令;如果无法唯一标识,则再敲一次tab键,将会显示所有以“命令的部分字符”开头的命令。

b)路径补全:

路径补全不是找的环境变量PATH,敲tab键后将会根据命令,搜索输入的部分路径,以寻找唯一标识,如果输入的部分路径不能唯一标识,则再敲一次tab键,显示所有以“部分路径”开头的路径。注意如果输入的路径是相对路径,则从当前路径开始搜索。

wKiom1NiXHWg8ePEAAH2KGjJU4Y220.jpg

使用命令补全和路径补全,可以避免出错误


 

 

三、bash中的快捷键

Ctrl+A:快速跳至命令行首

Ctrl+E:快速跳至命令行尾

Ctrl+U:删除命令行首至当前光标所在处的内容

 

Ctrl+U:删除命令行尾至当前光标所在处的内容

Ctrl+L:用于清屏幕,等同于clear命令

Ctrl+C:取消或终止当前命令

Ctrl+Z:将当前命令送至后台执行

 

四、bash 的变量类型

1.本地变量:只对当前shell的进程有效,换一个shell(即使是同一个用户开启的子shell)就失效了。

wKioL1NhAUGQrgHpAAIAPj_p5iY093.jpg

2.局部变量:它的范围比本地变量更小。即只限于部分代码块,不包括当前shell的所有位置。其定义方式为

local VAR_NAME=Value

3.环境变量:它的作用范围比本地变量大,它对当前shell及其子shell都有效(在shell中又打开了一个shell)其声明方式为

export VAR_NAME=Value

wKiom1NhAcKQKgWtAAQyypQ4pbY712.jpg

 

4.位置变量:常见的有——$1, $2,...

5.特殊变量:常见的有——$$, $!, $#, $?

 

尽管bash 是一种弱类型语言,但bash的变量是可以声明的,甚至可以指定类型,使用的命令是:declare,例如:

# Declare -i VAR_NAME        //声明一个整型变量,被声明的变量可以进行运算了

# Declare -x VAR_NAME        //声明一个环境变量

# Declare -a VAR_NAME//声明一个数组

 

五、变量的命令法则

1.变量的命名只能使用字母、数字和下划线

2.由于Linux区分大小写,因此不同的大小写字母可以作为不同的变量名,但通常情况下不建议这样做。变量名建议做到“见名知意”,即名字能够表示变量的基本含义。

3.抱持风格统一,例如全部使用大写或者小写,而不是一会儿大写,一会儿小写。

4.建议首字母大写,采用“驼峰式”,即两个单词的首字母大写,如UserName。

5.环境变量建议采用大写。注意我们自己起变量名时不要和原有的环境变量名重名,否则会覆盖原有变量。比如USER这样的变量名不要使用。

 

六、如何在bash中查看环境变量

1.查看环境变量

可以使用以下命令:

# printenv

或者

# export   //注意不带任何参数

 

2. 查看所有变量(包括环境变量和本地变量)

可以使用以下命令:

# set

wKiom1NhAiCQY1TTAAG-BheWhNI643.jpg

 

七、在bash中如何引用变量

引用变量最常用的方式是:$(VAR_NAME)

但如果要实现变量替换,则需要在双引号中实现,这是由bash中引号的作用决定的:bash中引号的主要有三种:

双引用:弱引用,可以实现变量的替换

单引号:强引用,不替换变量,而是现实字符串本身

反引号:位于键盘上Esc键下方(``),作用是实现命令引用, `` 等同于$()。它可以用于将某一命令的执行结果赋值给一个变量。

例如要显示当前时间:

# echo “The time is `date +%T`”

或者是:

# echo “The time is $(date +%T)”

再如要创建一个文件,要以当前日期为文件名,可以执行如下命令:

# touch file-$(date -%F).txt

或者是

# touch file-`date -%F`.txt

wKiom1NhAofiSnhvAASgOiRCq_U268.jpg

 

本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1405196

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Shell语言二 bash简介》技术文章,《Shell语言二 bash简介》详细使用和说明,有时《Shell语言二 bash简介》可能不完善、敬请谅解!如果《Shell语言二 bash简介》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(4)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片