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

ubuntu之shell编程学习笔记1——概述

2011-10-23 22:02 330 查看
1、查看shell版本命令

bash --version

2、查看别名

alias

3、查看命令的类型

type + 命令

4、删除别名

unalias, 暂时不想使用别名,使用\,例子:\ls

5、如何执行一个shell脚本



6、shell变量

本地变量,只在创建它的shell中有效,

赋值 ------ 变量名=值 (等号两边不可以有空格,如果赋值包括空格,空格必须用引号引起来)

shell变量对大小写敏感的,必须以字母和下划线开头。

清除变量------unset +变量名(例子 unset name)

使用set命令可以查看当前本地定义的所有shell变量

7、shell变量的扩展应用

${name:-word}---------------- 当变量name已被设置且非空,这显示name的值,否则显示word

${name:+word} ----------------当变量name已被设置且非空,这显示word的值,否则什么都不显示,代入空的值

${name:=word}---------------- 当变量name已被设置且非空,这显示name的值,否则显示word的值,且变量name始终赋值为word

${name:?word}}---------------- 当变量name已被设置且非空,这显示name的值,否则显示word的值,并且从shell退出

${name:offset} 或${name:offset:length} ---------获取变量name值中从offset开始的子串,或者获取从offset开始长度为length的子串。

例子:name="what is your name?" echo ${name:3} ------输出:t is your name?

${var/parten/replacement}----------用replacement来替换变量var中第一个与parten匹配的串,局部匹配

例子:echo ${name/is/IS} --------what IS your name?

${var//parten/replacement}----------用replacement来替换变量var中所有与parten匹配的串,全局匹配

例子:echo ${name/a/A} --------whAt IS your nAme?

8、变量设置成为只读的

变量赋值后,就不在赋值,只能读,例子:name="welcome shell word!" readonly name ,注意只读的变量不能用unset命令清除。

9、环境变量

1、环境变量全局可以调用。2、环境变量可以自己定义,但必须大写,用export导出,但用户注销后这些值就丢失,

例子:NAME=shell export NAME , 自定义一个NAME环境变量。显示环境变量:$NAME

如果想要保证NAME在用户注销后不被清除,可以在系统初始化文件中编写。

10、变量的长度

${#name} 可以得出name变量的长度,注意:如果name是个数组,那么${#name}是数组第一个元素的长度

例子:name=(a bb ccc ddd) echo ${#name} ----输出:1

${#name[*]} --输出:4(即数组namde的元素个数),${name[2]}------输出:ccc

11、指定类型的变量

格式:关键字declare 或者typeset +[-option] +变量名

-option -i 整数,-r只读,-a数组,-x export ,-f函数

例子: declare -r var 等同于 readonly var

declare -i number

12、变量间接引用

例子 admin=willson

willson=myname

echo ${admin}---------willson

eval admin=\$$admin !--变量间接引用

echo ${admin}-------myname

13、随机数

$RANDOM

14、位置变量

$0 ,$1,$2,$3......................................¥9 $0是脚本名称,$1是第一个参数,$2是第二个参数。。。。。。。。。。。。

15、特定变量参数

$#---------传递到脚本的参数个数

$*---------以一个单字符串显示所有向脚本传递的参数

$!---------后台运行的最后一个进程的进程ID

$$--------脚本运行的当前进程ID

$- ---------显示脚本shell使用的当前选项,与set命令功能相同

$@--------与$#相同,但是在使用中加引号,并在引号中返回每个参数

$?---------显示最后命令退出的状态,0表示没有错误,其他值表示异常 例如:mkdir adc echo $? ----输出:0

16、引用

""--双引号:可以引号除$,`,\外的任意字符或字符串

`` ---反引号 :引用命令 例如 name="你所在的目录`pwd`" ----你所在的目录/root/shell"

''--单引号 :变量原样输出

\---反斜杠 :转义符 例如:echo $$ ---输出当前进程的ID ,echo \$$---- $$

17、 echo "$name" name原样输出 例如 name="a b c d" echo "$name"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: