shell脚本中的变量,运算符

1.脚本格式

我们一般将shell脚本写在xxx.sh文件中,执行的时候bash/sh  xxx.sh  注意文件路径

 xxx.sh文件中的第一行为   #!/usr/bin/bash 注代表我们使用的是bin文件夹下的bash解释器(此条为注释语句,不写也可以)

2.echo用法   相当与print

示例1:定义变量a,输出变量a的值(都是在终端中输入)
a=5
echo $a示例2:创建一个Shell脚本 helloworld.sh,输出 helloworld[atguigu@hadoop101 shells]$ touch helloworld.sh   #新建 helloworld.sh 文件
[atguigu@hadoop101 shells]$ vim helloworld.sh在 helloworld.sh 中输入如下内容
#!/bin/bash
echo "helloworld"[atguigu@hadoop101 shells]$ bash helloworld.sh    #执行 helloworld.sh 文件,输出helloworld

3.变量的定义 

(1)定义变量:变量名=变量值,注意,=号前后不能有空格,如有空格,会当成指令
(2)撤销变量:unset 变量名
(3)声明局部变量:readonly 变量名=变量值,注意:局部变量不能 unset    
  (4)  export 变量名:可把变量提升为全局环境变量

变量定义规则

(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建
         议大写。
(2)等号两侧不能有空格
(3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。 

4.特殊变量 $n,$#,$*,$@

4.1 $n

$n : n 为数字, $0 代表该脚本名称, $1-$9 代表第一到第九个参数,十以 上的参数,十以上的参
         数需要用大括号包含,如${10}
$#:   功能描述:获取所有 输入参数个数 ,常用于循环 , 判断参数的个数是否正确以及加强脚本的健
        壮性
$* :这个变量代表命令行中所有的参数, $* 把所有的参数看成一个整体
$@ :这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待
$ ? :最后一次执行的命令的返回状态。如果这个变量的值为 0 ,证明上一 个命令正确执行;如果这个变量的值为非 0 (具体是哪个数,由命令自己来决定),则证明 上一个命令执行不正确了。
示例1
[atguigu@hadoop101 shells]$ touch parameter.sh
[atguigu@hadoop101 shells]$ vim parameter.sh#!/bin/bash                                #parameter.sh中的内容
echo '==========$n=========='
echo $0
echo $1
echo $2
echo '==========$#=========='
echo $#
echo '==========$*=========='
echo $*
echo '==========$@=========='
echo $@[atguigu@hadoop101 shells]$ bash parameter.sh cls xz   #其中cls,xz分别为变量1,变量2==========$n==========             #下面为输出内容
./parameter.sh
cls
xz
==========$#==========
2
==========$*==========
cls xz
==========$@==========
cls xz示例2
[atguigu@hadoop101 shells]$ bash helloworld.sh
hello world
[atguigu@hadoop101 shells]$ echo $?       #判断helloworld.sh有没有正常执行
0

5.运算符

 5.1运算式

语法:“$(( 运算式 ))” “$[ 运算式 ]”
示例:计算(2+3)* 4 的值
[atguigu@hadoop101 shells]# S=$[(2+3)*4]
[atguigu@hadoop101 shells]# S=$(((2+3)*4))[atguigu@hadoop101 shells]# echo $S

 5.2条件判断

语法: test condition  或 [ condition ]注意 condition 前后要有空格

注意:条件非空即为 true[ atguigu ]返回 true[ ] 返回 false

下图为常用的判断条件:

23 是否大于等于 22
[atguigu@hadoop101 shells]$ [ 23 -ge 22 ]
[atguigu@hadoop101 shells]$ echo $?
0helloworld.sh 是否具有写权限
[atguigu@hadoop101 shells]$ [ -w helloworld.sh ]
[atguigu@hadoop101 shells]$ echo $?
0多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一
条命令执行失败后,才执行下一条命令)
&&表示与,||表示或,类似于C++
[atguigu@hadoop101 ~]$ [ atguigu ] && echo OK || echo notOK
OK
[atguigu@hadoop101 shells]$ [ ] && echo OK || echo notOK
notOK

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450568.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《国色芳华》爆红网络,杨紫的“唐妆”惊艳四座。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 在中国的电视剧市场近几年的趋势中,仙侠剧的热度逐…

Blender使用Rigify和Game Rig Tool基础

做动画需要的几个简要步骤: 1.建模 2.绑定骨骼 3.绘制权重 4.动画 有一个免费的插件可以处理好给引擎用:Game Rig Tool 3.6和4.0版本的 百度网盘 提取码:vju8 1.Rigify是干嘛用的? 》 绑定骨骼 2.Game Rig Tool干嘛用的&#xf…

2017 年全国职业院校技能大赛高职组“信息安全管理与评估”赛项任务书(笔记解析)

1. 网络拓扑图 2. IP 地址规划表 3. 设备初始化信息 阶段一 任务1:网络平台搭建 1 根据网络拓扑图所示,按照 IP 地址参数表,对 WAF 的名称、各接口 IP 地址进 行配置。 主机名称 模式选择:透明模式 IP 地址:匹配参数表 WAF IP 地址 子网掩码 网口列表: eth0 和 eth1 2…

贪心算法:一种聪明而高效的求解策略

一、引言 在计算机科学中,贪心算法是一种重要的算法设计策略。它基于一种贪婪的策略,每一步都做出在当前看来最好的选择,希望这样的局部最优解能够导向全局最优解。尽管贪心算法并不总是能找到全局最优解,但在许多情况下&#xf…

H5项目使用@microsoft/fetch-event-source

前言: 在microsoft/fetch-event-source 文档中,没有介绍在项目中使用script 引入,只介绍了通过npm 引入的方式;项目的接口又是 post 方式的流式接口。 解决方式: 借助 webpack 工具 实现步骤: 1、初始化…

幻兽帕鲁服务器多少钱?价格PK阿里云腾讯云华为云

2024年幻兽帕鲁服务器价格表更新,阿里云、腾讯云和华为云Palworld服务器报价大全,4核16G幻兽帕鲁专用服务器阿里云26元、腾讯云32元、华为云26元,阿腾云atengyun.com分享幻兽帕鲁服务器优惠价格表,多配置报价: 幻兽帕鲁…

10. BI - 决策树的使用及可视化

本文为 「茶桁的 AI 秘籍 - BI 篇 第 10 篇」 文章目录 可视化探索决策树原理决策树算法决策树可视化泰坦尼克海难数据 Hi,你好。我是茶桁。 上一节课,咱们了解了图形的具体绘制方法,接下来咱们还要看看除了图形绘制之外,还有哪些…

Three.js学习4:添加轨道控制器

一、轨道控制器 拍摄画面的时候,为了保持镜头的稳定,并且能从多方位拍摄画面,往往会用到轨道(Orbit) 。 轨道控制器(Orbit controls)可以使得相机围绕目标进行轨道运动。 在 Three.js 里&…

python_蓝桥杯刷题记录_笔记_全AC代码_入门2

前言 现在正式进入蓝桥杯的刷题啦,用python来做算法题,因为我之前其实都是用C来做题的,但是今年的话我打算换python来试试,很明显因为也才这学期接触python 加上之前C做题也比较菜,所以我打算用python重新来做题&#…

[Vulnhub靶机] DriftingBlues: 1

[Vulnhub靶机] DriftingBlues: 1靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/driftingblues/driftingblues.ova 靶机地址:192.168.67.20 攻击机地址:192.168.67.3 一、信息收集 1.使…

【2024年美国大学生数学建模竞赛E题】O奖得主完整解析(可直接用)!

【2024美赛E题】O奖大佬解题思路分析! 目前已经更新E题的完整解题,包括数据、代码、结果与论文 加群可以获得完整解析,或者搜索B站:云顶数模。 联络组织企鹅:2024年美赛交流 以下是E题老师的参考论文。 1、问题重述…

职教云搜题神器找答案?学生党都在用的5款搜题工具来了 #其他#媒体#笔记

可以说是搜题软件里面题库较为齐全的一个了,收录国内高校常见的计算机类、资格类、学历类、外语类、工程类、建筑类等多种类型的题目。它可以拍照解题、拍照答疑、智能解题,并支持每日一练、章节练习、错题重做等特色功能,在帮助大家解答疑惑…