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
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
相关文章推荐
- [原]linux shell 逻辑判断
- Shell 流程控制
- linux shell自定义函数(定义、返回值、变量作用域)介绍
- shell函数
- shell 脚本学习之一 ------let,echo,变量
- LinuxShell算术运算
- linux下shell脚本启动java程序jar包
- [Erlang_Question30]Erlang shell是如何工作的?
- linux下使用shell查看apache IP访问量
- mac终端下运行shell脚本
- 《Linux命令、编辑器与Shell编程》读书笔记7-Linux系统管理
- 【192】PowerShell 相关知识
- Bash远程文件传输命令scp
- 【Linux学习笔记】Shell 基础(1) — Shell简介
- Bourne Shell:控制语句、条件判断、文本处理、常用命令
- 《生活在Linux中》之:prefer function to alias in Bash
- shell脚本攻略第一章总结
- bash(一)
- Powershell-基础:数组
- Powershell-Lync:统计当前环境下Lync用户总数