Shell脚本基础详解

Shell脚本基础详解

Shell脚本
是一个脚本语言,用来自动执行我们指定的系统命令的。
通俗的讲,再shell脚本当中,我们会编写一些需要使用的系统命令于其中再运行这个叫本的时候,这些被编写进去的系统命令会按照书写的顺序及规则以此运行。

包括后期我们要学的python实际原本也是通过shell演变过去的!!

学习一们语言首先我们要先了解什么叫变量@
在很多的编程语言当中都会有变量这样一个概念性的名词。
变量实际上是一个抽象的概念。它本身并没有任何意义。只作为一个名称来使用这个名称指代表了什么呢?
我们如果想要在脚本或程序当中设定一个值。那麽这个置会再脚本运行得到时候起作用。在脚本停止运行的时候,们就不再起到作用了。那麽这个值我们说他一定存储再内存当中。

内存当中存储数据,一般想要去查找他,需要指定内存空间的地址信息。就好想通过街道名称,门牌号

自定义变量
变量设置方法
变量名=变量值

一般来说,我们我们给变量齐名的时候有一些规范需要知道!
通常名称不能用纯数字,也不能用数字开头,可以是a-z或者A-Z会数字或下划线组合而成!

如果我们再linux的命令行当中设定一个新的变量abc,并将他赋值为123.那麽应该如何书写:
Abc=123
那麽我们如何验证呢:
Echo $变量名
Echo $abc

如何取消变量名呢:
Unset 变量名
Unset abc

变量调用:
$变量名
$abc

环境变量
$PATH
$PWD
$UID
环境变量不许自行修改!!
Path变量如果更改为空,则所有的外部命令都会不能用
$path默认的值是不允许我们随意改变,他的默认值如下面修改记得改回来
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/root/bin

位置变量
Echo第一个参数是$1
编写脚本myFirstShellScript.sh
在这里插入图片描述
./执行这个脚本没有任何作用!
在后面需加入参数!例子::
在这里插入图片描述

$?保存上一条命令的返回值
如果上一条命令正常运行则返回时为0
如果上一条命令非正常运行则返回值非0
在这里插入图片描述
$#输出总数
去脚本文件添加如下内容
在这里插入图片描述
然后执行命令:
在这里插入图片描述
$*记录在运行脚本时输入的所有参数内容!!!
去到脚本文件添加这个内容
在这里插入图片描述

实例:
在这里插入图片描述
练习:
输出./first.sh
获得:
#########!
总共有5个参数!
第一个参数是111
所有参数:111 222 333 444 555
在这里插入图片描述
输出:
在这里插入图片描述
单双引号包裹的解译:
在这里插入图片描述
在这里插入图片描述
为什么abc没有输出出来
需在调用它之前
变量一下abc
在这里插入图片描述
就可以输出出来了!!!

·····反点号用来包裹命令·····
在这里插入图片描述
它可以让一段命令代码另外一个命令代码当中去运行
Read用来让用户进行输入操作,并将用户输入的内容复制给read后指定的变量
在read使用过程当中,我们为了更加人性化,需要
Read -p “提示内容” 变量名
接受用户输出的内容赋值内容
Export全局变量
在全局变量都能使用,作用就是linux全局
使用方法
A=1 (普通设置变量方法)
Echo

想要运行全局的export需要先source+shell脚本的绝对路径!然后echo就可以看见123了!!!
在这里插入图片描述
在这里插入图片描述
Expr 相当于linux里面的bc计算器!!!
在这里插入图片描述
Abc=10 cde=20

$RANDOM
取值范围是0-32767(有符号的16-bit)

测试语句:
【 -d /etc 】测试是否是目录语句
【 -e /etc 】测试目录或文件是否存在
【 -f 目标文件或目录 】测试目标是否是文件
【 -r 目标 】判断当前用户对指定文件是否存在
【 -w 目标 】判断当前用户对指定文件是否有写权限
【 -x 目标 】判断当前用户对指定文件是否有运行权限
注意这里的-r/-w/-x并不直接等于文件属性上显示的rwx。如果我们看/etc/shadow文件的话,本身权限是“———”,但是root用户登录的情况下我们使用上面的命令去查询这个文件是否有rwx权限,则会获得返回值0.也就是说我们有权限修改。原因无他,只因为我们是root用户!!!!

我们可以加上&&符号上面的操作一步完成,后面加上的echo“yes”代表如果前面的命令成立的话,则返回“yes”
【 -d/wang 】&& echo“yes”
返回yes
在这里插入图片描述
整数值比较
【 整数1 操作符 整数2 】
-eq: 等于 equal “=“
-ne: 不等于 not equal “≠“
-gt: 大于 greater than “>“
-lt: 小于 lesser than “<“
-ge: 大于等于 greater or equal “≥“
-le: 小于等于 lesser or equal “≤“

使用案例:::
在这里插入图片描述
显示效果和上面一样!!!

字符串的比较
字符和字符串
在这里插入图片描述
在这里插入图片描述
If判断语句
If条件测试操作
Then命令序列
Fi
尝试:让用户输入一个数字,与变量ram

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101760.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据库的概念结构设计应在_数据库概念结构设计的任务

    数据库的概念结构设计应在_数据库概念结构设计的任务概念结构设计将需求分析得到的用户需求抽象成信息世界的概念结构模型的过程。概念结构是各种数据模型的基础,它比数据模型更独立于机器,更加抽象更加稳定。概念结构设计是数据库设计的关键。一般用ER图来描述。 概念结构设计的特点(1)能真实充分的反应现实世界。(2)可扩充,易于更改。(3)易于理解。(4)易于向其他数据模型转换。 概念结构设计的步骤与方法1.方法:自顶向下:先根据总需求获得全局概念结构的框架,再根据全局概念结构逐步细化。自底向上:根据子需求获得部

    2022年10月12日
  • idea 2022.01激活(JetBrains全家桶)2022.01.28

    (idea 2022.01激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~GTRP…

  • vuethink 在本地没问题,在服务器报错 , php5.6与php5.5之间的大坑

    vuethink 在本地没问题,在服务器报错 , php5.6与php5.5之间的大坑

    2021年10月13日
  • pycharm设置背景色及字体_pycharm字体大小设置不了

    pycharm设置背景色及字体_pycharm字体大小设置不了1、首先在pycharm打开FILE,点击seting2、点击Editor,再点击Font可以设置字体大小;点击ColorScheme可以设置背景色。3、字体设置:点击Font可以选择不同字体,点击Size可以调节字体大小,右侧可以看预览效果,最后点击ok即可。4、背景色设置:先点击ColorSchemeFont,Scheme可以选择不同的背景,下面框框里是预览效果,最后点击Ok即可。…

  • 实现PC视频播放最强画质教程( Potplayer播放器+MADVR插件)【转】

    实现PC视频播放最强画质教程( Potplayer播放器+MADVR插件)【转】转自:http://www.hangge.com/blog/cache/detail_1461.html一、MADVR介绍MADVR 是一款超强的视频插件,其配合高清播放软件,可以做到目前 PC 上播放高清视频的最强画质。MADVR 这款视频渲染器比市面上大多数播放器自带的渲染器有着更精确的颜色处理,更高质量的图像缩放缩放、以及更低的颜色错误率。这就使得它所渲染出来的视频在颜色上更…

  • kettle教程[通俗易懂]

    kettle教程[通俗易懂]kettle/spoon教程donwloadwebkettle7.0downloadurlreference

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号