码迷,mamicode.com
首页 > 其他好文 > 详细

2_Shell语言———bash简介

时间:2014-05-03 02:09:05      阅读:476      评论:0      收藏:0      [点我收藏+]

标签:linux bash 变量 引号

一、初识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.

   bubuko.com,布布扣


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

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

bubuko.com,布布扣


二、bash的主要特性

1.使用变量

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

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

   使用别名的格式为:

# alias 别名=正常命令

   撤销别名的格式为:

# unalias 别名

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

以使用别名:

   # alias cls=clear

   # unaias cls

bubuko.com,布布扣

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

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

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


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

5.支持管道

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

7.支持编程

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

a)命令补全:

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

b)路径补全:

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

bubuko.com,布布扣

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




三、bash中的快捷键

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

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

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


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

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

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

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


四、bash 的变量类型

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

bubuko.com,布布扣

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

local VAR_NAME=Value

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

export VAR_NAME=Value

bubuko.com,布布扣


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

bubuko.com,布布扣


七、在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

bubuko.com,布布扣


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

2_Shell语言———bash简介,布布扣,bubuko.com

2_Shell语言———bash简介

标签:linux bash 变量 引号

原文地址:http://wuyelan.blog.51cto.com/6118147/1405196

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!