- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell编程-基础
1 创建shell脚本文件
创建文件,并且以 #!/bin/bash 开头,#!/bin/bash是必须行(开头行),在脚本文件中加注释可用#开头
============================= 文件=============
Eg:
#!/bin/bash
#显示时间和用户
Date
Who
==================文件结尾====================
2 用echo显示消息
当要显示自己的消息时,可以用 echo zijidexiaoxi 来显示
Eg: 在上面文件中加入一行
Echo hello word!!
运行时即可显示出hello word!!
当echo显示的消息中有引号(单、双引号)要特别处理,弱消息中有单引号,则应用双引号将整个消息括起,若消息中有双引号,则应用单引号将消息括起。若要显示消息后不换行,应用echo –n
3 使用环境变量
在脚本中我们可以使用 $环境变量名称 来使用环境变量,若要显示$符号,要使用转义符\。
Eg:
Echo UID: $UID //$UID使用的是UID环境变量
Echo “much \$15” //使用的是$符号,表示15美元
$环境变量名 放在引号内也可被识别:
Echo “UID: $UID” //使用的是UID环境变量值
4 使用用户变量
用户变量名不超过20个字符,由字母,数字,下划线组成
用户变量区分大小写
用户变量临时存储数据并在整个脚本中使用
赋值通过 变量=值 实现,等号两边无空格
用户变量通过美元符$引用
用户变量自动识别(决定)变量赋值的类型
Eg:
Test1=100
Test2=“hello word!”
Echo $test1
Echo $test2
5 使用反引号
不是单引号’, 而是反引号`, 和~位于同一个键位
反引号可以将shell命令的输出赋值给变量(用反引号圈起命令)
Eg:
testing=`date`
echo $testing
*注:当shell命令的结果赋值给变量后,可以用该变量做很多其他的事情。
6 重定向输出
重定向可以将一个命令的输出发到一个文件中,常用 实现
Eg:
Date data.txt
当文件已经存在时,用 重定向覆盖原文件,若要追加在文件结尾,应用 实现重定向
Ls data.txt
7 重定向输入
输入重定向可将文件内容输入到命令,用 实现,command file
当需要用户在命令行输入内容时,可以用内联重定向
Wc EOF
8 管道
将一个命令的输出作为另一个命令的输入 用| 实现
Command1 | command2
可以在一条命令中使用任意多管道
Ls –al | more
9 数学运算
Expr命令
Expr 1 + 5 //加号左右要有空格
Expr 3 \* 5 //*号要用转义符转意,否则出错
当将用expr计算的两个数的结果赋值给变量时,要用反引号
Val3=`expr 1 + 5`
使用方括号
当将两个数计算结果赋值给变量时,可用$[]将数学表达式圈起
Val=$[1 + 5]
10 退出脚本
可以用 $?查看上个命令的退出状态码(0-255)
Date
Echo $?
可查看date命令的退出状态码(正常为0);
可以用exit命令设置脚本的退出状态码
Exit 5 //设置shell脚本退出状态码为5
11 使用if-then语句
格式:
If command
Then
Commands
Fi
运行:先执行if后的command命令,如果该command命令正常执行(退出状态码为0),则执行then后面的commands命令,如果if后边的命令不正常执行,直接跳过该模块。
if date 正常工作模块
then
echo “It worked”
fi
if adbd //非正常工作模块
then
echo “It not worked”
fi
echo “we are outside if statement”
12 使用if-then-else语句
格式:
If command
Then
Commands1
Else
Commands2
fi
运行:先执行if后的command,若正常执行(退出码为0),这执行then后的commands1命令,否则执行else后的commands2命令。
13 嵌套if
格式:
If command1
Then commands1
Elif command2
Then commands2
Elif command3
Then commands3
Fi
运行:如果command1正常运行(返回状态码为0),则执行com
文档评论(0)