您的位置:首页 > 运维架构 > Shell

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

2015-12-21 11:40 961 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: