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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软件测试基础知识 – 介绍一下单元测试、集成测试、系统测试、回归测试、验收测试

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netDefinitionProvideaunifiedinterfacetoasetofinterfacesinasubsystem.Facadedefinesahigher-levelinterfacethat…

    2022年4月9日
    54
  • 点餐程序android,Android点餐系统教程(登陆篇)

    点餐程序android,Android点餐系统教程(登陆篇)前言:点餐系统融合知识也不少,最多的部分都是网络。本教程是本人亲自写。若有转载,需写明原做者喔。点餐系统做用性我懒的说,何时想到了再编辑吧。html准备工做:1.JavaEE的eclipse。固然你eclipse能建web项目也能够2.mysql和Navicatformysql,由于服务器须要用mysql做为后台数据库。Navicatformysql是管理mysql可视化软件。3.Tom…

    2022年6月19日
    24
  • mysql优化的几种方法_sgd优化算法

    mysql优化的几种方法_sgd优化算法1.SGDBatchGradientDescent在每一轮的训练过程中,BatchGradientDescent算法用整个训练集的数据计算costfuction的梯度,并用该梯度对模型参数进行更新:Θ=Θ−α⋅▽ΘJ(Θ)\Theta=\Theta-\alpha\cdot\triangledown_\ThetaJ(\Theta)优点:costfuction若为凸函数,能

    2022年10月22日
    0
  • 50个多线程面试题,你会多少?(一)[通俗易懂]

    50个多线程面试题,你会多少?(一)[通俗易懂]下面是Java线程相关的热门面试题,你可以用它来好好准备面试。什么是线程? 什么是线程安全和线程不安全? 什么是自旋锁? 什么是Java内存模型? 什么是CAS? 什么是乐观锁和悲观锁? 什么是AQS? 什么是原子操作?在JavaConcurrencyAPI中有哪些原子类(atomicclasses)? 什么是Executors框架? 什么是阻塞队列?如何使用阻塞队列来…

    2022年5月2日
    36
  • Busybox的安装步骤[通俗易懂]

    Busybox的安装步骤[通俗易懂]一、下载busyboxwww.busybox.net/downloads/(busybox-1.17-0.tar/bz2)二、安装:1、修改Makefile文件:第175行交叉编译器CORSS_COMPILE2、makemenuconfig当出现如下错误时的解决办法:make[2]:***[scripts/kconfig/lxdialog/check…

    2022年7月16日
    10
  • Pycharm设置自动代码提示(超详细)

    Pycharm设置自动代码提示(超详细)【前言】最近在使用pycharm这款编译器的时候,发现在学习python过程中没有代码提示就很烦,所以网上收集资料加上自身的实践总结出以下方法如何在pycharm中设置代码提示。【步骤一】起初看到网上很多教程都是这样点击File然后将PowerSaveMode旁边的√去掉就可以,实际上确实是这样的,当我们敲代码的时候比如import就会有自动提示。【注意】但是可能有些小伙伴按照这样的提示可是还是不显示代码自动提示,为什么会这样呢,原因是你的Python环境没有配置好,我们按照下面

    2022年8月25日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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