shell分析和总结分析和总结.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

shell

基本知识

执行

chmod+x./test.sh #使脚本具有执行权限

./test.sh #执行脚本

变量读写屏幕输出

readPERSON

echoHello,$PERSON

//读取变量

//打印变量

变量

定义变量

variableName=value

注意,变量名和等号之间不能有空格。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。

中间不能有空格,可以使用下划线(_)。不能使用标点符号。

不能使用bash里的关键字(可用help命令查看保留关键字)定义变量时,变量名不加美元符号($)

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

echo$your_nameecho${your_name}

重新定义变量

同定义变量

只读变量

readonlymyUrl

删除变量

unsetvariable_name

注:变量被删除后不能再次使用;unset命令不能删除只读变量

变量类型

局部变量

局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

环境变量

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

shell变量

shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

特殊变量列表

变量

变量

含义

$0 当前脚本的文件名

$n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。

$# 传递给脚本或函数的参数个数。

$*

传递给脚本或函数的所有参数。

$@ 传递给脚本或函数的所有参数。被双引号()包含时,与$*稍有不同,下面将会讲到。

$? 上个命令的退出状态,或函数的返回值。

$$ 当前Shell进程ID。对于Shell脚本,就是这些脚本所在的进程ID。

$* 和$@ 的区别

$*和$@都表示传递给函数或脚本的所有参数,不被双引号()包含时,都以$1$2?

$n的形式输出所有参数。

但是当它们被双引号()包含时,$*会将所有的参数作为一个整体,以$1$2?$n的形式输出所有参数;$@会将各个参数分开,以$1$2?$n的形式输出所有参数。

转义字符

-e表示对转义字符进行替换(echo-eValueofais$a\n)

命令-E禁止转义,默认也是不转义的;使用-n可以禁止插入换行符。

命令替换

`command` 反引号,不是单引号

例子: UP=`date;uptime`

echoUptimeis$UP

输出: 03:59:57up20days,14:03, 1user, loadavg:0.13,0.07,0.15

变量替换

形式

形式

说明

${var}

变量本来的值

${var:-word}

如果变量var为空或已被删除(unset),那么返回word,但不改变var的值。

${var:=word}

如果变量var为空或已被删除(unset),那么返回word,并将var的值设置为word。

如果变量var为空或已被删除(unset),那么将消息message送到标准错误输出,可以用来检测变

${var:?message}量var是否可以被正常赋值。

若此替换出现在Shell脚本中,那么脚本将停止运行。

${var:+word}

如果变量var被定义,那么返回word,但不改变var的值。

运算符(awk 和expr)

算术运算符

Bash支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符

几点注意:

表达式和运算符之间要有空格,例如2+2是不对的,必须写成2+2,这与我们熟悉的大多数编程语言不一样。

完整的表达式要被``(反引号)包含

乘号(*)前边必须加反斜杠(\)才能实现乘法运算

条件表达式要放在方括号之间,并且要有空格

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字

运算符

运算符

说明

举例

-eq

检测两个数是否相等,相等返回true。

[$a-eq$b]返回true。

-ne

检测两个数是否相等,不相等返回true。

[$a-ne$b]返回true。

-gt

检测左边的数是否大于右边的,如果是,则返回true。

[$a-gt$b]返回false。

-

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档