一、认识Shell
1.Shell简介
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。
2.Linux的Shell种类
(1)Bourne Shell(/usr/bin/sh或/bin/sh)
(2)Bourne AgainShell(/bin/bash)
(3)C Shell(/usr/bin/csh)
(4)K Shell(/usr/bin/ksh)
(5)Shell for Root(/sbin/sh)
Bash也是大多数Linux系统默认的Shell。
3.关于每个Shell开头的#!/bin/bash说明
#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。
4.运行Shell脚本的两种方法
(1)把Shell做为一个可执行的程序
chmod +x file
./file
(2)作为解释器参数
/bin/sh file
/bin/php file
5.Shell注释
以“#”开头的行就是注释,会被解释器忽略。
二、Shell变量
1.变量命名规则
(1)首个字符必须为字母
(2)中间不能有空格,但是可以使用下划线
(3)不能使用标点符号
(4)不能使用bash里面的关键字
2.变量命名的两种方式
(1)显示命名 your_host="www.hello.com"
(2)非显式命名 for file in`ls /bin`
3.变量的使用
在变量名前面加美元符号--$your_host
注:有时候为了确定解释器识别的变量边界,需要给变量加花括号--${your_host}
只有在使用变量的时候才加$。
4.只读变量
使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。
readonly your_host
5.删除变量
使用unset命令删除变量
unsetyour_host
6.变量类型
(1)局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
(2)环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
(3)shell变量:shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。
7.Shell字符串中‘单引号’和“双引号”区别
(1)单引号中的字符会原样输出,单引号字符串中的变量无法使用;(注:单引号不能出现单引号)
(2)双引号里可以有变量,双引号里可以出现转义字符。
8.拼接字符串
your_host_new="hello,"$your_host" !"
9.获取字符串长度
your_host="www.hello.com"
echo${#your_host} #输出 13
10.提取子字符串
your_host="www.hello.com"
echo ${your_host:1:4} #输出ww.h
11.查找子字符串
your_host="www.hello.com"
echo `exprindex "$your_host" he` #输出4
三、Shell数组
1.定义数组
数组用括号表示,数组元素用“空格”符号分割开。定义数组的一般形式:
数组名=(值1 值2 ... )
2.数组三种赋值规格
(1)my_array=(value0 value1 value2)
(2)my_array=(
value0
value1
value2
)
(3)my_array[0]=value0
my_array[1]=value1
my_array[2]=value2
3.数组的读取
${数组名[下标]};利用@可以获取数组中的所有元素${数组名[@]}。