一、初识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.”
撤销变量:释放之前占用的内存空间已供其他进程或程序使用
unset VAR_NAME //注意只用变量名,不加$
二、bash的主要特性
1.使用变量
2.支持快捷键,且快捷键可以自定义
3.支持命令别名(见“10_Linux基础知识及命令————创建和删除文本文件”)
使用别名的格式为:
# alias 别名=’正常命令’
撤销别名的格式为:
# unalias 别名
比如windows中我们使用cls来清屏,而在Linux中使用clear命令。如果想保留windows的使用习惯,就可
以使用别名:
# alias cls=‘clear’
# unaias cls
如果不想使用别名而使用原来的命令,则可以使用“\命令”。
注意:别名只对当前shell有效,即使是同一个用户重新启动的shell,也不能使用别名;如果要使
别名永久有效,需要定义在配置文件。
4.支持命令行的展开:{}(见“8_Linux基础知识及命令————目录的创建与删除”),~ (表示命令的家目录)
5.支持管道
6.支持输入、输出和重定向
7.支持编程
8.支持命令行自动补全和路径补全
a)命令补全:
采用的方式是在输入命令的部分字符后,按下tab键,bash会自动搜索在PATH环境变量下所有可以执行文件,以补全此命令。但需要注意的是,输入的部分字符必须能够唯一标识某命令;如果无法唯一标识,则再敲一次tab键,将会显示所有以“命令的部分字符”开头的命令。
b)路径补全:
路径补全不是找的环境变量PATH,敲tab键后将会根据命令,搜索输入的部分路径,以寻找唯一标识,如果输入的部分路径不能唯一标识,则再敲一次tab键,显示所有以“部分路径”开头的路径。注意如果输入的路径是相对路径,则从当前路径开始搜索。
使用命令补全和路径补全,可以避免出错误
三、bash中的快捷键
Ctrl+A:快速跳至命令行首
Ctrl+E:快速跳至命令行尾
Ctrl+U:删除命令行首至当前光标所在处的内容
Ctrl+U:删除命令行尾至当前光标所在处的内容
Ctrl+L:用于清屏幕,等同于clear命令
Ctrl+C:取消或终止当前命令
Ctrl+Z:将当前命令送至后台执行
四、bash 的变量类型
1.本地变量:只对当前shell的进程有效,换一个shell(即使是同一个用户开启的子shell)就失效了。
2.局部变量:它的范围比本地变量更小。即只限于部分代码块,不包括当前shell的所有位置。其定义方式为
local VAR_NAME=Value
3.环境变量:它的作用范围比本地变量大,它对当前shell及其子shell都有效(在shell中又打开了一个shell)其声明方式为
export VAR_NAME=Value
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
七、在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
本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1405196
2_Shell语言———bash简介,布布扣,bubuko.com
原文地址:http://wuyelan.blog.51cto.com/6118147/1405196