没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
linux shell 脚本语言基础知识一.shell 简介
Linux 系统的 shell 作为操作系统的外壳,为用户提供使用操作系统的界面,
更确切的说,shell 是用户与 Linux 操作系统沟通的桥梁。用户既可以输入命令执
行,又可以利用 Shell 脚本编程,完成更加复杂的操作。
shell 是一个命令解释器,它从输入设备读取命令,再将其转为计算机可以
了解的指令,然后执行它。在 linux 中,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),等等。不同的 Shell 语言的语
法有所不同,所以不能交换使用。每种 Shell 都有其特色之处,基本上,掌握其
中任何一种就足够了。通常用 Bash,也就是 Bourne Again Shell 进行编程。
二.shell 使用
1.建立和运行 shell 程序
shell 脚本程序:
按照一定的语法结构把若干 linux 命令组织在一起,是这些命令按照我们的
要求完成一定的功能。它可以进行类似程序的编写,并且不需要编译就能执
行。(只需修改其权限)
像编写高级语言的程序一样,编写 shell 程序需要一个文本编辑器,如 VI 和
VIM,通常使用 VIM 文本编辑器,支持更便利的插入模式。
首先使用 VIM 编辑器编辑一个 hello.sh 文件:
#!/bin/bash
#hello world example
1 / 23
echo "hello world"
这样,一个最简单的 shell 程序就编写完了。
第一行:
#!说明 hello.sh 这个文件的类型的,这有点类似于 Windows 系统下的用不
同的文件后缀来表示不同的文件类型,但又不完全相同。Linux 系统根据#!及
该字符串后面的信息确定该文件的类型。在#!之后是一个路径名,这个路径名
指定了一个解释脚本中命令的程序。
第二行:
“#hello world example”就是 shell 程序的注释,(但后面紧接着“!”号的除
外)
第三行:
echo(回显)语句的功能是把 echo 后面的字符串输出到标准输出中。
现在,建立和写好之后,那么该程序如何运行呢?
由于该脚本没有执行的权限,只需要修改其执行的权限即可,执行:
chmoda+x hello.sh。然后输入命令:
./hello.sh 即可看到效果。
2.shell 变量
变量是一个存储值的实体,可以是一个名字,或者一个特殊的值。shell 可
以创建,分配和删除变量。
(1)变量设置规则:
a.变量与变量内容以等号(=)来连接
b.等号两边不能直接接 xx
2 / 23
c.变量名称只能是英文字母与数字或下划线,但是数字不能是开头符 d.引用
变量名用“$变量名”
#!/bin/bash
#hello world example
a="hello world"
echo $a
以上例子一样可以输出 hello world。e.若有空格符可以使用双引号或单引号
将变量内容结合起来,但必须注意,双引号的特殊字符可以保有变量的特性,
但是单引号内的特殊字符则仅为一般字符。
#name="$LOGNAME is hh" //root is hh
#name='$LOGNAME is hh' //$LOGNAME is hh
f.通常大写字符为系统预设变量,自行设定的变量可以使用小写字符
(2)取消变量:
用 unset 变量名
#!/bin/bash
#hello world 例子
a="hello world"
unset a
echo $a
以上例子将不会打印出任何 xx。
3.shell 特殊变量
$0:执行的脚本的文件名
3 / 23
$1:脚本文件的第一个参数名
$#:
传递到脚本的参数个数
$*:
以一个单字符串显示所有向脚本传递的参数
$$:
脚本运行的当前进程 ID 号
$?:
显示最后命令的退出状态,0 表示没有错误,其它值表示有错误例子
#!/bin/bash
echo "the file is $0"
echo "the parameter is $1 $2"
echo "number of parameter is $#"
echo "all parameter is $*"
echo $?
加权限后执行./a.sh hh mm gg
则打印
the file is ./a.sh
the parameter is hh mm
number of parameter is 3
all parameter is hh mm gg0
4 / 23
a.sh
4.常用 shell 内嵌命令
(1)echo:
显示变量内容
(2)env:
显示目前系统中主要的预设变量内容
(3)set:
显示目前系统中全部的变量内容
(4)read:
从键盘读入变量内容
(5)declare:
声明变量内容
-a:
定义为数组 array
-f:
定义为函数 function
-i:
定义为整数 integer
-r:
定义为“只读”
-x:
定义为透过环境输出变量、
5 / 23
剩余22页未读,继续阅读
资源评论
我是你的春哥!
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 厚壁压力容器的焊接质量控制.pdf
- 厚壁管焊接接头中间射线检验技术.pdf
- 厚大件35CrMo的焊接 - .pdf
- 厚钢板对接焊接三维有限元数值模拟与分析- .pdf
- 弧形闸门安装施工中的焊接变形控制.pdf
- 华恒机器人焊接系统应用 - .pdf
- 化工工程中现场设备与工艺管道的焊接质量控制.pdf
- 化工设备安装中焊接质量控制.pdf
- 化工焊工工艺学.pdf
- 换热器高压外壳的焊接.pdf
- 换热管-管板焊接接头射线照像技术试验研究.pdf
- 化工用厚壁铜管件焊接裂纹及质量控制研究.pdf
- 换热管与管板的焊接工艺规程.pdf
- 换热器管板堆焊的焊接操作和变形控制 - .pdf
- 换热器管板先胀后焊的焊接工艺.pdf
- 换热器管板焊接变形的控制.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功