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)
blank

相关推荐

  • c盘替换文件需要权限_windows安装命令

    c盘替换文件需要权限_windows安装命令大家都知道08权限的系统权限设置很严格,且在2003系统中常用到的溢出工具都失效。面对限制IP连接的情况我们及时拿到system权限有账号也上不去这种情况下只能弄shift后门或者放大镜了。但08权限在system权限也操作不了系统文件夹。先查通过whoami查看下登录帐号权限。通过下图我们看到是普通权限我用的到时MS12042这个大家都会用单独讲sysret.ex…

  • 使用spss进行系统聚类分析

    使用spss进行系统聚类分析按以下步骤进行操作1)导入数据北京 8070.40 2643.00 12128.00 2511.00 5077.90 4054.70 2629.80 1140.60天津 8679.60 2114.00 6187.30 1663.80 3991.90 2643.60 2172.20 892.20河北 4991.60 1614.40 4483.20 1351.10 2664.10 1991.30 1549.90 460.40山西 3862.80 1603.00 3633.80 951.60 2401.

    2022年10月18日
  • GFS – The Google File System

    GFS – The Google File SystemTheGoogleFileSystemhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.789&amp;rep=rep1&amp;type=pdfhttp://www.dbthink.com/?p=501,中文翻译 Google牛人云集的地方,但在设计系统时,却非常务实,没有采用什么复杂和时髦…

  • storm单机版部署

    storm单机版部署

  • php 数组根据值找key,从数组查找key对应的值 – key

    php 数组根据值找key,从数组查找key对应的值 – key…L,`nick`varchar(32)DEFAULTNULL,`reg_date`datetimeDEFAULTNULL,PRIMARYKEY(`id`),KEY`IND_NICK`(`nick`),KEY`IND_REGDATE`(`reg_date`))CREATETABLE`users`(`id`int(11)NOTNULL,`nick`varchar(32)D…

  • 混合高斯背景建模原理_高斯图模型

    混合高斯背景建模原理_高斯图模型在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要。而建模正是背景目标提取的一个重要环节。前景是指在假设背景为静止的情况下,任何有意义的运动物体即为前景。运动物体检测的问题主要分为两类,摄像机固定和摄像机运动。对于摄像机运动的运动物体检测问题,比较著名的解决方案是光流法,通过求解偏微分方程求的图像序列的光流场,从而预测摄像机的运动状态。对于摄像机固定的情形,当然也可以用光流法,但是

发表回复

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

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