- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)