当前位置: 首页 > news >正文

Shell——变量和引用

1.总结变量的类型及含义?

2.实现课堂案例计算长方形面积?(6种方式)

3.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815

(通过多种方法实现)

        1)截取网站访问的协议

        2)截取网站访问账号信息


1.总结变量的类型及含义?

        1)、自定义变量:

               (1)、定义变量:   

                        变量名=变量值

               注:变量名必须以字母或下划线开头,区分大小写

                (2)、引用变量:

                        $变量名或$(变量名)

                (3) 、查看变量

                        echo $变量名

                (4)、取消变量

                        unset 变量名

                (5)、作用范围

                        仅在当前shll中有效

num=1
name=lisi

        2)、环境变量

                (1)、bash的初始化文件

                        /etc/profile:存放一些全局变量

                        ~/.bash_profile:每个用户都可以使用该文件输入专用于自己使用的shell信息

                        ~/.bashrc:该文件包含专用于你的bash shell的bash信息

                        /etc/bashrc:为每一个运行bash shell的用户执行此文件

              (2)、bash内置环境变量

                        PATH:命令的搜索路径,以冒号作为分隔符

                        HOME:用户的家目录的路径,是cd命令的默认参数

                        COLUMNS:命令行编辑模式下可使用命令的长度

                        HISTFILE:命令历史的文件路径

                        HISTFILESIZE:命令历史中包含的最大行数

                        LOGNAME:当前用户的名字

                        $HELL:当前使用的shell

                        PWD:当前的工作目录

                (3)、范围

                        在所有shell中生效,但是重启ssh连接将会重置(即重新按照定义的变量文件加载

export num=1
export name=zhangsan

        3)、位置变量

                在shell脚本中应有变量,接受实参,这类变量的名称很特别,分别为1,2,3...这类变量称为位置变量,位置参数1存放在位置变量1中,位置参数2存放在位置变量2中,...来访问

$1 $2 $3 $4 $5 $6 $7 $8 $9 $(10)

        4)、预定义变量

$0      脚本名      echo "显示脚本文件名" $0      ||    echo "显示脚本文件名"  basename $0dirname$*    所有的参数$@    所有的参数$#    参数的个数$$    当前进程的PID$!    上一个后台进程的PID$?    上一个命令的返回值 0表示成功

        5)、只读变量

                将变量配置成为 readonly 类型,该变量不可被更改内容,也不能 unset   -

                (1)、定义方法:

                        方法一:  readonly [-fap] [变量定义]  -f 定义只读函数 -a 定义只读数组变量 -p 显示系统中全部的变量列表

                        方法二:  declare – r 变量定义

                (2)、取消变量:

                                unset

                                选项: -f 取消的是函数

                                          -v 取消的是变

                                          如果没有指选项,首先尝试取消变量,如果失败尝试取消函数。

2.实现课堂案例计算长方形面积?(6种方式)

        1)、使用变量

[root@localhost ~]# vim 2.sh#!/bin/bash
##############################################################
# File Name: 2.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:38:18
# Description:
##############################################################l=10
w=5
area=$(($l * $w))
echo "长为$l,宽为$w的长方形面积为$area"[root@localhost ~]# bash 2.sh
长为10,宽为5的长方形面积为50

        2)、直接计算

[root@localhost ~]# vim 3.sh#!/bin/bash
##############################################################
# File Name: 3.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:40:59
# Description:
##############################################################
echo "长为 10,宽为 5的长方形面积为 $((10 * 5)) "[root@localhost ~]# bash 3.sh
长为 10,宽为 5的长方形面积为 50  

        3)、用bc命令

[root@localhost ~]# vim 4.sh#!/bin/bash
##############################################################
# File Name: 4.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:42:53
# Description:
##############################################################
echo "scale=2;10 * 5 " | bc[root@localhost ~]# bash 4.sh
50
[root@localhost ~]# 

        4)、用awk命令

[root@localhost ~]# vim 5.sh#!/bin/bash
##############################################################
# File Name: 5.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:45:20
# Description:
##############################################################
echo "10 5" | awk '{print $i * $2}'[root@localhost ~]# bash 5.sh
50
[root@localhost ~]# 

        5)、用expr命令

[root@localhost ~]# vim 6.sh#!/bin/bash
##############################################################
# File Name: 6.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:47:26
# Description:
##############################################################
expr 10 \* 5[root@localhost ~]# bash 6.sh
50

        6)、用let命令

[root@localhost ~]# vim 7.sh#!/bin/bash
##############################################################
# File Name: 7.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:48:19
# Description:
##############################################################
let area=10*5
echo "长为 10,宽为 5的长方形面积为 $area"[root@localhost ~]# bash 7.sh
长为 10,宽为 5的长方形面积为 50

3.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815

(通过多种方法实现)

        1)截取网站访问的协议

[root@localhost ~]# vim url.sh#!/bin/bash
##############################################################
# File Name: url.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:53:09
# Description:
##############################################################
url=https://blog.csdn.net/weixin_45029822/article/details/103568815
protocol=$(echo $url | cut -d ":" -f1)
echo $protocol[root@localhost ~]# bash url.sh
https

        2)截取网站访问账号信息

[root@localhost ~]# vim url.sh#!/bin/bash
##############################################################
# File Name: url.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:53:09
# Description:
##############################################################
url=https://blog.csdn.net/weixin_45029822/article/details/103568815
protocol=$(echo $url | cut -d ":" -f1)
echo $protocol
username=$(echo $url | awk -F'[/]' '{print $(NF-3)}')
echo $username[root@localhost ~]# bash url.sh
https
weixin_45029822

相关文章:

Shell——变量和引用

1.总结变量的类型及含义? 2.实现课堂案例计算长方形面积?(6种方式) 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815 (通过多种方法实现) 1)截取网站访问的协…...

实际开发中一些实用的JS数据处理方法

写在开头 JavaScript 是一种脚本语言,最初是为了网页提供交互式前端功能而设计的,而现在,通过 Node.js,JavaScript 还可以用于编写服务器端代码。 JavaScript 具有动态性、基于原型的面向对象特性、弱类型、多范式、支持闭包执行…...

10:00进去,10:05就出来了,这问的也太变态了···

从外包出来,没想到死在另一家厂子了。 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到5月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推…...

GPT时代,最令人担心的其实是“塔斯马尼亚效应”

目录 教育到底教什么? 过度依赖GPT可能导致文明退化 GPT可以帮助人类破解“学海无涯极限”悖论 春季学期伊始,全球各地的老师们如临大敌,因为学生们带着ChatGPT杀过来了。Study.com的调研显示,每10个学生中就有超过9个知道Chat…...

基于容器技术和服务发现的全新大数据平台弹性伸缩方法

随着科技的不断发展,各个行业都在不断地数字化和智能化。在这个过程中,大数据技术成为了许多行业的重要支撑。而随着大数据技术的普及,行业分类和设备装置的不断更新换代,弹性伸缩成为了一个不可避免的问题。本文将介绍基于服务发…...

php8 match

刚从 php7 升级到 php8 时 我在使用 switch 语句,结果出现了一个提示: "switch statement can be converted to match expression" 翻译过来就是: switch语句可以转换为match表达式 我当时在想,match 应该是php8 的…...

ADS-B接收机Radarcape

1.设备简介 Radarcape是一款便携、高性能、功能强大的ADS-B地面接收机。Radarcape的设备清单包含:ADS-B接收机主机,专业级ADS-B天线,GPS天线,电源线,网线。 2. 功能特点 Radarcape可以通过网口输出飞机的原始数据D…...

软件测评师2012年下半年考试真题<更新中。。。>

1.2012 年下半年全国计算机技术与软件专业技术资格(水平)考试日期是 11月4号。 2.在 CPU 中,控制器 不仅要保证指令的正确执行,还要能够处理异常事件。 3.循环冗余校验码(CRC) 利用生成多项式进行编码。设数据位为 k 位…...

ChatGPT 使用 拓展资料:开始构建你的优质Prompt

ChatGPT 使用 拓展资料:开始构建你的优质Prompt...

Hystrix原理

一.概述 在软件架构领域,容错特指容忍并防范局部错误,不让这种局部错误不断扩大。我们在识别风险领域,风险可以分为已知风险和未知风险,容错直接应对的就是已知风险,这就要求针对的场景是:系统之间调用延时…...

内网外网分离模式下,通过网关转发,来部署前后端分离的系统

前言 最近为某银行系统部署了一套商城系统,网络环境比较特别,思路记录下,其中商场系统使用前后端分离模式部署。 该银行网络环境: 外网服务器:外网可以访问到它,不能访问外网。 网关服务器:跟…...

基于 Amazon API Gatewy 的跨账号跨网络的私有 API 集成

一、背景介绍 本文主要讨论的问题是在使用 Amazon API Gateway,通过 Private Integration、Private API 来完成私有网络环境下的跨账号或跨网络的 API 集成。API 管理平台会被设计在单独的账号中(亚马逊云科技提供的是多租户的环境),因为客观上不同业务…...

SSH远程连接时报错kex_exchange_identification: Connection closed by remote host

简介 在SSH服务器上进行远程内容时,会经常出现kex_exchange_identification: Connection closed by remote host内容,主要是由于远程计算机登录节点的数量限制问题。 解释 在 SSH 服务器上,最大并发登录会话数是由 ‘MaxSessions’ 参数来…...

一、CNNs网络架构-基础网络架构

目录 1.LeNet 2.AlexNet 2.1 激活函数:ReLU 2.2 随机失活:Droupout 2.3 数据扩充:Data augmentation 2.4 局部响应归一化:LRN 2.5 多GPU训练 2.6 论文 3.ZFNet 3.1 网络架构 3.2 反卷积 3.3 卷积可视化 3.4 ZFNet改…...

[开发|C++] C++的基本运算符说明笔记

基本运算符说明 C是一种功能强大的编程语言,提供了多种运算符来执行各种基本操作。下面是一些常见的C基本运算符及其说明: 算术运算符: :加法运算符,用于执行两个操作数的相加操作。 -:减法运算符&#xf…...

抖音定位功能的作用

随着智能手机和社交网络的普及,人们日常生活中对于位置信息的需求也越来越高。而抖音作为一款以短视频为主的社交应用,其定位技术也备受关注。本文将就抖音的定位功能进行探究,介绍抖音如何获取、处理和利用用户的位置信息,并探讨…...

阿里 P9 推荐的 Spring 领域巅峰之作,直接颠覆了我对 Spring 的认知

写在前面 你第一次接触 spring 框架是在什么时候?相信很多人和我一样,第一次了解 spring 都不是做项目的时候用到,而是在网上看到或者是听到过一个叫做 spring 的框架,这个框架号称完爆之前的 structs 和 structs2,吸…...

R语言结构方程模型(SEM)在生态学领域中的实践应用

结构方程模型(Sructural Equation Model)是一种建立、估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归、因子分析、协方差分析等方法,利用图形化模型方式清晰展示研究系统中变量间的因果网络关系,…...

Java设计模式-模板方法模式

简介 在软件开发中,设计模式是一种被广泛采用的方法,用于解决常见的设计问题。模板方法模式是其中一种重要的设计模式之一,它提供了一种将算法的结构骨架固定,但允许子类实现具体步骤的机制。 模板方法模式是一种行为型设计模式…...

Start JDKFlightRecorder--人工翻译

可以同时运行多个JFR记录,并且每个JFR记录都可以使用不同的配置,你可以使用不同的JFR记录去捕获不同的事件集。但是,为了使JFR内部逻辑更加精简,生成的记录始终包含当时活动的所有记录的所有事件的并集。这意味着,运行…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

docker 部署发现spring.profiles.active 问题

报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...

数据分析六部曲?

引言 上一章我们说到了数据分析六部曲,何谓六部曲呢? 其实啊,数据分析没那么难,只要掌握了下面这六个步骤,也就是数据分析六部曲,就算你是个啥都不懂的小白,也能慢慢上手做数据分析啦。 第一…...