shell学习-基础(变量、输入、输出、数组、环境变量)

1、#!/bin/sh开头

2、变量:

(1)定义:变量名=字符串。注意:=左右无空格;name=“hello world”,为其赋值带空格的字符串;

(2)引用:用$nametest、${name}test。

3、通配符:

(1)*符号:用于匹配字符串零次或多次出现;匹配的含.和\符号必须显示指出。如*test不能匹配.EXtest,而要用.EX*;*test不能匹配/home/test,要用/*/test才可以。

(2)?符号:仅匹配对应位置的一个字符

(3)[]符号:匹配该字符组所限定范围内的任何一个字符

(4)!符号:匹配不在该字符组所限定范围内的任何一个字符

4、shell输入:

read 变量1 变量2

#!/bin/sh
echo "input your name and age:"
read name age
echo "name is :"$name
echo "age is :"$age

5、shell输出:

echo

6、shell数组:支持一维数组,但不限定数组的具体大小。

(1)取值的一般方式:${数组名[下标值]}

(2)赋值方式:数组名[下标值]=值

(3)可以一个个赋值,也可整体赋值,但值与值用空格隔开。数组名=(value1 value2 value3...

eg:

#!/bin/sh
name=(i am very happy)
echo "name[0] is:"${name[0]}
echo "name[1] is:"${name[1]}
echo "name[2] is:"${name[2]}
echo "name[3] is:"${name[3]}

(4)可以通过下标输出值,也可以用*和@符号代替下标,如${name[*]}取出数组中所有元素的值。

#!/bin/sh
name=(i am very happy)
echo "name is " ${name[*]}
echo "name1 is "${name[@]}

(5)上面是如何增加、读取,下面介绍如何修改、删除。

A、修改理解为对数组指定元素的重新赋值;

B、删除需要借助一个外部命令:unset。unset name[0]来清空下标为0的元素;也可以使用unset name[@]命令来取消数组中所有的元素。

#!/bin/sh
name=(i am very happy)
name[0]=myself
echo ${name[@]}

unset name[0]
echo ${name[@]}

unset name[@]
echo ${name[*]}

name[0]=hello
name[1]=world
echo ${name[*]}

运行结果:

myself am very happy
am very happy

hello world

6、环境变量:linux中有一块公共空间,专门用于存放环境变量,用户可以通过printenv进行查看。

(1)基本的环境变量:

PWD、HOME、LOG NAME、SHELL、PATH

(2)环境变量的删除:

用unset命令,eg:unset PATH  则PATH即为空。

#!/bin/sh
echo "PWD:"$PWD
echo "path:"$PATH
echo "logname:"$LOGNAME
echo "sehll:"$SHELL
echo "home:"$HOME

运行结果:

PWD:/home/test/shell
path:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
logname:root
sehll:/bin/bash
home:/root


你可能感兴趣的:(shell学习-基础(变量、输入、输出、数组、环境变量))