没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
文章目录1.shell简介1)什么是shell2)shell脚本3)运行shell脚本4)shell注释5)shell编写的基本步骤2.shell变量1)命名变量2)使用变量3)变量类型3)变量操作3.shell字符串1)字符串类型2)字符串操作4.shell数组1)定义数组2)数组操作5.shell传递参数6.shell运算符1)shell运算符种类2)算数运算符3)关系运算符4)布尔运算符5)逻辑运算符6)字符串运算符7)文件测试运算符7.shell编程中的命令1)echo命令2)printf命令3)test命令8.shell流程控制1)if else条件2)case条件2)for循环3)
资源推荐
资源详情
资源评论



格式:docx 资源大小:1.1MB 页数:48












格式:doc 资源大小:82.0KB 页数:25











格式:pdf 资源大小:30.5KB 页数:1



Linux学习笔记学习笔记09 — 超详细超详细shell脚本编程快速入门脚本编程快速入门
文章目录文章目录1.shell简介1)什么是shell2)shell脚本3)运行shell脚本4)shell注释5)shell编写的基本步骤2.shell变量1)命名变量2)使用变
量3)变量类型3)变量操作3.shell字符串1)字符串类型2)字符串操作4.shell数组1)定义数组2)数组操作5.shell传递参数6.shell运算符
1)shell运算符种类2)算数运算符3)关系运算符4)布尔运算符5)逻辑运算符6)字符串运算符7)文件测试运算符7.shell编程中的命令
1)echo命令2)printf命令3)test命令8.shell流程控制1)if else条件2)case条件2)for循环3)while循环4)until循环9.shell函数1)定义函
数2)参数定义10.shell重定向11.结尾
1.shell简介简介
1)什么是)什么是shell
什么是shell呢?shell是用C语言编写的程序,它是用户使用 Linux 的桥梁。Shell既是一种命令语言,又是一种程序设计语言。简单来说
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。也可以这样认为,linux中的shell就
是linux内核的一个外层保护工具,并负责完成用户与内核之间的交互
2))shell脚本脚本
shell脚本就是一种专门使用shell编写的脚本程序,它虽然没有C++、Java、Python等一系列高级语言功能强大,但是在服务器运维领域以
及嵌入式开发领域,shell脚本具有举足轻重的地位。
shell脚本编程如同其他编程语言的一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以运行了,而linux下的
shell种类众多,常用的用:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell((/bin/bash))
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
… …
在诸多linux发行版系统中,最常用的就是Bash,就是Bourne Again Shell,因为其能工提供环境变量以配置用户shell环境,支持历史记
录、内置算数功能、支持通配符表达式等高效性能,将linux常用命令进行的简化,被广泛应用于Debian系列的linux发行版中。
3)运行)运行shell脚本脚本
运行shell脚本的方法有两种:
作为可执行程序运行
作为解释器参数运行
shell脚本编写如下,并将其保存为test.sh,进入存放此文件目录
#!/bin/bash
echo "Hello World"
当作为可执行程序运行时候
chmod +x test.sh # 赋予可执行权限
./test.sh # 执行程序
当作为解释器参数运行时
/bin/sh test.sh # 执行命令
/bin/php test.php # 执行命令
4))shell注释注释
单行注释:和python注释相同,以#号开头作为单行注释
# 这是一个注释
# author:ohuohuoo
# date:`date`
多行注释:如果在开发过程中,,遇到大段的代码需要临时注释起来,过一会儿又取消注释,可以将其定义为一个花括号的注释函数,也
可以用多行注释
:<<EOF
注释内容...
注释内容...
注释内容...

EOF
# EOF可以换成其他符号
:<<E!
注释内容...
注释内容...
注释内容...
!
5))shell编写的基本步骤编写的基本步骤
建立shell文件
赋予shell文件可执行程序权限(使用chmod命令修改权限)
执行shell文件(直接运行赋予权限后的二进制文件)
2.shell变量变量
1)命名变量)命名变量
shell编程中,定义变量是直接定义的,没有明确的数据类型没有明确的数据类型,shel允许用户建立变量存储数据,但是将认为赋给变量的值都解释为一串字都解释为一串字
符符,如下
cout=1 # 定义变量
name="ohuohuo" # 定义变量
echo $cout # 取变量值
echo $name # 取变量值
shell中,英文符号"$"用于取变量值
注意点注意点
:shell编程的变量名的命名和其他语言一样,需要遵循一定的规则,规则如下
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
如下所示
有效的命令
NAME
LIBRARY_PATH
_var
var2
无效的命名
?var=123
user*name=ohuohuo
如果在变量中使用系统命令,需要加上 ” `”符号(ESC键下方),如下所示
DATE1=`date`
DATE2=$(date)
两者功能相同
2)使用变量)使用变量
使用变量的时,用英文符号"$"取变量值,对于较长的变量名,建议加上{ }花括号,帮助解释器识别变量的边界,如下
name="test_name"
echo "My name is ${name}and you"
加上方括号时即所有便后面的语句不留空格,shell也会自动识别边界,默认添加一个空格

此外,已经定义过的变量,可以二次定义并重新被赋值覆盖上一次的变量值,这点如同其他语言
3)变量类型)变量类型
shell编程中也同样存在变量类型,在运行shell时会同时存在三种变量
局部变量局部变量:在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量
环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,必要的时候shell脚本也可以定义环境变量
shell变量变量:由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,不同类型的变量保证了shell的正常运行
3)变量操作)变量操作
shell中的变量,默认为可读可写类型,如果想要其只可读,如同url一样,需要将其声明为**只读类型变量(**如同const),使用readonly命
令,如下脚本
#!/bin/bash
Url="http://www.baidu.com"
readonly Url
Url="http://www.csnd.net"
这样的话,这句就会报错,提示/bin/sh: NAME: This variable is read only. 此变量为只读变量
如果想要删除变量删除变量,使用unset命令解除命令赋值,但是unset不能删除可读变量,如下所示
#!/bin/sh
name="ohuohuo"
Url="http://www.baidu.com"
readonly Url # 设置可读变量
unset name # 可以被删除
unset Url # 不可被删除
echo $name # 不被打印出
echo $Url # 打印出
3.shell字符串字符串
1)字符串类型)字符串类型
在shell中字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。
使用单引号
str='this is a string'
使用单引号的不足:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
使用双引号
name="ohouhuoo"
str="please input your \"$name"\"
echo -e $str
输出结果如下图
剩余15页未读,继续阅读
资源评论


weixin_38683193
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- -单片机数字电子钟的方案设计书与研究-.doc
- 企业网站建设协议范本.doc
- 如何以就业为导向探索中职计算机专业的建设.doc
- 大学生职业生涯规划方案书(计算机专业).doc
- ACCESS由家庭物品管理到学成生绩管理的转换分析研究.doc
- 我国农业物联网发展现状存在问题和对策.docx
- 浅论互联网经济下我国电商网络零售演进及竞争发展态势.docx
- 刍议计算机网络应用安全的影响因素.docx
- 大数据的未来.docx
- 网络工程师综合网络配置练习手册汇编.doc
- 基于SKYEYE的嵌入式Linux系统研究设计.doc
- AutoCAD工程师.doc
- 基于大数据时代背景下的档案管理.docx
- Z建设工程项目管理施工成本控制.doc
- ppt模板:简约风全球化信息网络通用PPT模版.pptx
- 飞天-从互联网行业的视角看空管技术行业.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
