要想用好linux,先把shell 搞明白

2023-12-19

一、变量

1、环境变量

echo $PATH

2、自定义变量

hello="hello_world"
echo $hello

3、存储 Linux 命令执行结果作为变量

(2 种方式,推荐使用第二中,第一种是 ~键上面的斜点比较难识别)
files= ls -al
path=(pwd)注意点定义变量=号两边不能有空格使用变量需要加 符号

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili 【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。 icon-default.png?t=N7T8 https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

二、基本运算

1、运算符

+:加
-:减
*:乘
/:除
%:取余
==:判断是否相等
!=:不等于

:大于
=:大于或等于
<:小于
<=:小于或等于

2、整数运算(expr)

expr 10 + 3
echo $[10 + 3]
将计算结果存储为变量2种方式
num=$(expr 10 + 3)
num=`expr 10 + 3`

注意点
运算符前后必须用空格
*乘必须加反斜杠转义

3、整数运算($[])

num1=100
num2=200
sum_num=$[$num1+num2]

注意点
运算符前后可以不空格
*乘不需要加转义符

4、浮点运算

num=$(echo "scale=2;10/3" | bc)

scale:保留小数的位数

将 10/3 给 bc 计算器计算,保留两位小数

三、条件选择

if 后面接的是命令,其实是这个命令的退出状态码,正常退出,状态码 0,其他的就不是 0。这里意思是如果是 0 就执行 then,否则就不执行
1、

if-then
if command
then 
    "执行成功"
fi

2、

if-then-else

3、

if-then-elif-else
if判断基本语法,if开头,fi结尾
#/bin/bash
  NUM='4'
  if (( $NUM > 4 ))
    then
    echo "$NUM more then 4"
  elif (( $NUM == 4 ))
    then 
    echo "$NUM 等于4" 
  else
    echo "$NUM less then 4"
  fi 

4、case 语句

case $num in
1)
  echo "num=1"
2)
  echo "num=2"
3)
  echo "num=3"
esac

四、循环

1、for - in

for i in list
do
  commands
done

2、C 语言风格

for (( i = 0;i <= 10;i++))
do
  commands
done

3、while 循环

while test command
do 
  echo "条件满足的时候执行这里的操作"
done
num=8
while (( $num < 10 ))
do
  echo "条件满足的时候执行这里的操作"
  echo "$num小于10"
done

4、until 循环

until test command
do 
    echo “条件不满足的时候执行”
done

说明:

  1. condition 为条件表达式,值为 false,则继续执行循环体内语句,否则跳出循环

  2. until 循环与 while 循环处理方式刚好相反

  3. 控制循环

    break 跳出外层循环,同 python

    continue 终止当前循环,进入下一个循环,同 python

while  ((  1>0  )) 
do
    echo –n “输入一个数字”
   read num
    if (( $num>10 ))
       then  
           break
      else
          continue
    fi
done

五、命令行参数处理

bash shell 可以根据参数位置来获取参数
通过 $1 到 $9 获取第 1 到第 9 个命令行参数
$0 为 shell 名,如果参数超过 9 个,就通过 ${10}来获取

六、获取用户输入(read)

单个输入,指定变量接收输入的值(choice)

echo -n "yes or no(y/n)"
read choice
echo "you choice is : $choice"

单个输入,不指定变量接收输入的值,read 会将它接收到的任何数据放到特殊环境变量 REPLY 中

echo -n "yes or no(y/n)"
read
echo "you choice is : $REPLY"

多个输入

read -p "what is you name?" first second
echo first:$first
echo second:$second

上面的例子首先会输出 what is you name? 然后在本行等待用户输入,此处的 read -p 实现以上实例的 echo -n + read 不换行的效果,输入的参数用空格隔开,如果输入的值超出接收的变量个数,shell 会把剩下的值都赋值给最后一个变量。

七、超时设置

if read -t 5 -p "enter you name:"
name
then
  echo "hello $name"
else
    echo "time out"
fi

注意点

  1. 变量名一般大写

  2. 数值比较 (( 8 > 7 ))

  3. 字符串比较 【【 str1 != str2 】】

  4. test 命令只能判断以下 3 类条件

    数值比较
    字符串比较
    文件比较

  5. 5shell 脚本的流控制语句结束语句就是开始语句反过来写,如 if 结束语句 fi,case 结束语句 esac

数值比较
字符串比较
文件比较

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

要想用好linux,先把shell 搞明白 的相关文章

随机推荐

  • 几个Python小案例,爱上Python编程!

    Python是一种面向对象的解释型编程语言 源代码与解释器CPython遵守GPL协议 Python语法简洁清晰 语法简洁清晰 那么我们用少量的Python代码能做哪些有趣的东西 一 画爱心表白 1 图形都是由一系列的点 X Y 构成的曲线
  • yolo网络整理-网络结构原理与anchor

    YOLOv5 是Glenn Jocher等人操刀研发 Ultralytics公司的开源项目 项目地址可点击 2020年6月发布以来 Ultralytics公司一直在对项目进行维护与更新 目前repo的star数目突破44k YOLOv5的功
  • 软件测试/测试开发/人工智能丨ROC 与 AUC 的含义

    ROC Receiver Operating Characteristic 曲线和AUC Area Under the Curve 是用于评估二分类模型性能的常用工具 特别在处理不平衡数据集时非常有用 ROC 曲线 Receiver Ope
  • Qt 信号槽相关

    简单连接和关闭 connect 操作对象 操作对象属性 操作 this 响应对象 响应函数 连接 disconnect 操作对象 操作对象属性 操作 this 响应对象 响应函数 关闭 Lambda表达式 信号 connect 对象 对象类
  • 什么软件可以识别图片上的文字?快收藏好这些识别工具

    我真是要受不了自己的脑子了 它怎么总是能自动执行 清空 指令 让我把要做的事情忘得精光呢 就算是刚刚才在心中暗暗提醒过自己的事情 过个把小时就能忘到 九霄云外 去了 真是没少耽误正事 还好我学会了用便利贴来提醒自己 其它重要的事情也会记到小
  • 计算机组成原理——数制与编码

    1 在以下编码中 零的表示唯一的是 C A 反码 B 原码 C 补码 D 原码和移码 2 假设某数的真值为 100 1010B 在计算机内部表示为1011 0110B 该数采用的编码为 D A 移码 B 原码 C 反码 D 补码 3 考虑以
  • 大气污染扩散模型Calpuff丨Calmet气象模块、Calpost后处理模块、Post Tools后处理工具及绘图工具等

    目录 第一章 Calpuff基础知识 第二章 数据预处理 第三章 Calmet气象模块 第四章 Calpuff模块 第五章 Calpost后处理模块 第六章 Post Tools后处理工具及绘图工具 更多应用 Calpuff模型是一种三维非
  • 哪个图片翻译软件好用?推荐这三款帮你轻松翻译

    表弟在这两天正躲在家里 头悬梁锥刺股 呢 原因无它 距离他英语考试的时间只剩两三天了 可他这几个月都在偷懒 不仅上课不好好听 作业也没有好好写 可不得临时抱佛脚嘛 看着他对着英语卷子疯狂挠头 看不懂单词还得现翻词典的样子 真是狼狈极了 好歹
  • 为什么俄罗斯盛产黑客?

    自第一任总统上任以来 弗拉基米尔 普京始终将说服西方 特别是美国认真对待莫斯科 视作国家的首要任务 俄罗斯的这一目标 很大程度上源于过去十年更为自信且倾向于军事化的外交政策 长时间以来 俄罗斯似乎难以打破美国人深植的不可侵犯感 2014年
  • 为什么企业有了银企直联还需要智能网银?

    银企直联 又称银企互联 是指企业通过在内部建立自己的资金管理系统 与银行进行数据与信息的交互 方便企业实时查询账户信息 交易明细 以及办理结算 贷款 票据管理等业务 由于银企直联为企业财资管理带来了更多的便利 同时也能为银行提供更多的客户资
  • Python图像处理:批量添加水印的优雅实现与进阶技巧

    1 简介 在日常图像处理中 为图片添加水印是一项常见任务 有多种方法和工具可供选择 而今天我们将专注于使用Python语言结合PIL库批量添加水印 需要注意的是 所选用的图片格式不应为JPG或JPEG 因为这两种格式的图片不支持透明度设置
  • 如何在本地Docker中部署MinIO服务并实现远程访问管理界面

    文章目录 前言 1 Docker 部署MinIO 2 本地访问MinIO 3 Linux安装Cpolar 4 配置MinIO公网地址 5 远程访问MinIO管理界面 6 固定MinIO公网地址
  • API调试神器!免费IDEA插件推荐

    IDEA是一款功能强大的集成开发环境 IDE 它可以帮助开发人员更加高效地编写 调试和部署软件应用程序 我们在编写完接口代码后需要进行接口调试等操作 一般需要打开额外的调试工具 今天给大家介绍一款IDEA插件 Apipost Helper
  • 手机APP测试——如何进行安装、卸载、运行?

    手机APP测试 主要针对的是安卓 Android 和苹果IOS两大主流操作系统 主要考虑的就是功能性 兼容性 稳定性 易用性 性能等测试 今天先来讲讲如何进行安装 卸载 运行的内容 一 App安装 1 点击运行APP安装包 检测安装包是否正
  • SpringBoot3-快速入门

    1 简介SpringBoot是什么 SpringBoot 帮我们简单 快速地创建一个独立的 生产级别的 Spring 应用 说明 SpringBoot底层是Spring 大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Sp
  • 如何在项目管理中跟踪资源可用性?

    项目是有计划 有安排的 在不超支预算的情况下按期执行项目 项目经理必须了解资源的可用性 这是资源管理流程的一部分 什么是资源可用性 资源可用性是指了解执行项目所需的资源 何时需要以及在何种情况下需要 能够协调完成项目所需的资源 是项目成功的
  • 2023 年排名前八的 Kali Linux 工具

    一 排名前八的 Kali Linux 渗透测试工具 信息收集 密码破解 社交工程 网络犯罪对我们的 IT 世界构成严重威胁 并且可以采用许多不同的策略来打击它 道德黑客 也称为 白黑客 使用各种网络安全工具来测试网络和数据系统是否存在黑客可
  • 为什么要学习Python?

    前言 Python 是当今非常流行的编程语言 在互联网上经常可以看到他的身影 它应用非常广泛 例如编程 Web 开发 机器学习和 数据科学Q 等 TIOBE 官网近日公布了 2023 年 8 月的编程语言排行榜 Python 依然排行第一
  • 免费、好用!IDEA插件用这款!

    IDEA插件市场中的API调试插件不是收费 Fast Request 就是不好用 apidoc apidocx等等 今天给大家介绍一款国产的API调试插件 Apipost Helper 完全免费且好看好用 这款插件由Apipost团队开发的
  • 要想用好linux,先把shell 搞明白

    一 变量 1 环境变量 echo PATH 2 自定义变量 hello hello world echo hello 3 存储 Linux 命令执行结果作为变量 2 种方式 推荐使用第二中 第一种是 键上面的斜点比较难识别 files ls