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

01-shell的自学课-基础变量学习

一、echo变量的一个坑

声明【临时变量】,然后打印出来;(拓展:env是linux的全局变量)

[root@gong ~]# xinjizhiwa=shell
[root@gong ~]# echo $xinjizhiwa
shell

[root@gong ~]# echo $xinjizhiwa-haha
shell-haha
[root@gong ~]# echo $xinjizhiwahaha

#不分开写,就什么都不显示了;因为,系统自动识别“xinjizhiwahaha”为一个整体,我们没有声明这个变量,所以打印值为空;

如果说们有这种需求,就要在变量后面直接加字符串,怎么办呀?使用{}框住变量名即可;

[root@gong ~]# echo ${xinjizhiwa}haha
shellhaha

二、linux的特殊的变量

1,系统命令变量

        我们在安装好一个软件在linux之后,命令不论在哪个目录下,都可以使用,本质就是通过变量的方式进行打印的;

        命令本身是一个执行文件,我们使用“命令”实际上就是通过【命令路径变量】进行寻址并使用变量地址中的执行文件的;

        那么系统中命令的变量在哪里?

[root@gong ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

2,字符集变量

就是系统使用的什么字符集(万国码、、、、)

[root@gong ~]# echo $LANG
en_US.UTF-8

3,解释器的颜色变量

[root@gong ~]# echo $PS1
[\u@\h \W]\$

4,当前用户的ID

[root@gong ~]# echo $UID
0

三、案例写一个简单的shell脚本

[root@gong ~]# vim 01-shell.sh

#!/bin/bash

#声明变量
hostname=`hostname`
ipaddress=`hostname -I`
mem_total=`free -h | awk 'NR==2{print $2}'`
mem_free=`free -h | awk 'NR==2{print $NF}'`
sys_load=`top -bn1 | awk -F: 'NR==1{print $NF}'`

#执行代码
echo "主机名称是:$hostname"
echo "ip地址:$ipaddress"
echo "内存总量:$mem_total"
echo "内存空闲:$mem_free"
echo "系统负载:$sys_load"

[root@gong ~]# sh 01-shell.sh

四、【$数字】=接收传参

使用脚本外部传进来的参数,作为变量使用;

【$数字】   #传参;命令行的文字传输到脚本当中;$1表示第一个参数,$2表示第二个参数;

· 编辑一个脚本

#!/bin/bash

xinjizhiwa=$1
echo " ${xinjizhiwa} 传参成功了!"

[root@gong ~]# sh 02-shell.sh xinjizhiwa
 xinjizhiwa 传参成功了!
[root@gong ~]# sh 02-shell.sh haha
 haha 传参成功了!
[root@gong ~]# sh 02-shell.sh 111222333
 111222333 传参成功了!

· 两个参数案例

[root@gong ~]# vim 02-shell.sh

#!/bin/bash

xinjizhiwa=$1
xjzw=$2
xuexi=$3
echo " ${xinjizhiwa} 传参成功了!"
echo " ${xjzw} 传参成功了!"
echo " ${xuexi} 传参成功了!"

[root@gong ~]# sh 02-shell.sh haha xixi hehe
 haha 传参成功了!
 xixi 传参成功了!
 hehe 传参成功了!

五、【$0】脚本的路径/名字

【$0】就代表脚本呢的文件名称,怎么使用,你随意;

[root@gong ~]# vim 02-shell.sh

#!/bin/bash

xinjizhiwa=$1
xjzw=$2
xuexi=$3
echo " ${xinjizhiwa} 传参成功了!"
echo " ${xjzw} 传参成功了!"
echo " ${xuexi} 传参成功了!"
echo "脚本的名称是:$0"

[root@gong ~]# sh 02-shell.sh haha xixi hehe
 haha 传参成功了!
 xixi 传参成功了!
 hehe 传参成功了!
脚本的名称是:02-shell.sh

六、【$?】上一条执行结果

打印$?得到的结果是,上一条命令是否执行成功,成功则返回0,不成功,怎返回非0;

[root@gong ~]# cat /etc/hosts >> /dev/null 
[root@gong ~]# echo $?
0
[root@gong ~]# catttttt  /etc/hosts >> /dev/null 
-bash: catttttt: command not found
[root@gong ~]# echo $?
127

七、【$#】控制传参数量

        后面讲,需要配合其他知识;

八、【$@】或者【$*】取出脚本中所有参数

[root@gong ~]# vim 02-shell.sh 

#!/bin/bash

xinjizhiwa=$1
xjzw=$2
echo " ${xinjizhiwa} 传参成功了!"
echo " ${xjzw} 传参成功了!~ "
############################
echo $@
echo $*

[root@gong ~]# bash 02-shell.sh 111 222
 111 传参成功了!
 222 传参成功了!~ 
111 222
111 222

至此,变量就告一段落;

相关文章:

01-shell的自学课-基础变量学习

一、echo变量的一个坑 声明【临时变量】,然后打印出来;(拓展:env是linux的全局变量) [rootgong ~]# xinjizhiwashell [rootgong ~]# echo $xinjizhiwa shell [rootgong ~]# echo $xinjizhiwa-haha shell-haha [rootgo…...

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Span)

作为Text组件的子组件,用于显示行内文本的组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件从API Version 10开始支持继承父组件Text的属性,即如果子组件未设置…...

前端框架的演进之路:从静态网页到现代交互体验的探索

前端框架的发展史 随着互联网的快速发展,前端技术也在不断进步,前端框架作为前端开发的重要工具,经历了从简单到复杂、从单一到多元的演变过程。本文将回顾前端框架的发展史,探讨其变迁背后的原因和趋势。 一、静态网页时代 在…...

在Linux/Ubuntu/Debian中设置字体

下载字体。 下载你喜欢的字体,双击并安装。 之后更新字体缓存: fc-cache -f -v安装 GNOME 调整。 GNOME Tweaks 是一个工具,允许你自定义 GNOME 桌面环境的各个方面,包括字体。 如果你还没有安装 GNOME Tweaks: …...

Python 常用内置函数,及实例演示

Python的内置函数非常强大,可以帮助你完成各种任务。以下是20个非常有用的Python内置函数及其使用实例: 1. abs() 返回数字的绝对值。 print(abs(-5)) # 输出:52. all() 如果迭代器的所有元素都为真(或迭代器为空&#xff09…...

C++标准输入输出和名字空间

C标准输入输出和名字空间 标准输入输出 在C中,标准输入输出(I/O)是通过标准库中的iostream库来实现的,它提供了一套流(stream)抽象来进行数据的输入和输出操作。这套流抽象包括输入流用于读取数据&#x…...

hive逗号分割行列转换

select * from ( select back_receipt_nos,order_no,reject_no from ods_oneplus.ods_us_wms_reject_order_match_all_d where order_no 10150501385980001 ) t1 lateral view explode(split(t1.back_receipt_nos, ,)) t as back_receipt_no where 1 1;...

Jenkins插件Parameterized Scheduler用法

Jenkins定时触发构建的同时设定参数。可以根据不同的定时构建器设置不同参数或环境变量的值。可以设置多个参数。并结合when控制stage流程的执行。结合when和triggeredBy区分定时构建的stage和手动执行的stage。 目录 什么是Parameterized Scheduler?如何配置实现呢…...

西门子S7.NET通信库【读】操作详解

在使用西门子PLC进行工业自动化控制的过程中,经常需要与PLC进行数据交换。S7.NET是一款广泛应用于.NET平台的西门子PLC通信库,它为开发者提供了一系列的API函数,以便在C#、VB.NET等.NET语言中轻松实现与西门子PLC的数据交互。本文将详细介绍如…...

Qt/C++音视频开发69-保存监控pcm音频数据到mp4文件/监控录像/录像存储和回放/264/265/aac/pcm等

一、前言 用ffmpeg做音视频保存到mp4文件,都会遇到一个问题,尤其是在视频监控行业,就是监控摄像头设置的音频是PCM/G711A/G711U,解码后对应的格式是pcm_s16be/pcm_alaw/pcm_mulaw,将这个原始的音频流保存到mp4文件是会…...

闲聊Swift的枚举关联值

闲聊Swift的枚举关联值 枚举,字面上理解,就是把东西一件件列出来。 在许多计算机语言中,枚举都是一种重要的数据结构。使用枚举可以使代码更简洁,语义性更强,更加健壮。 Swift语言也不例外。但和其他语言相比&#xf…...

抓取Instagram数据:Fizzler库带您进入C#爬虫程序的世界

引言 在当今数字化的世界中,数据是无价之宝。社交媒体平台如Instagram成为了用户分享照片、视频和故事的热门场所。作为开发人员,我们可以利用爬虫技术来抓取这些平台上的数据,进行分析、挖掘和应用。本文将介绍如何使用C#编写一个简单的Ins…...

Codeforces Round 933 (Div. 3) A~D

比赛链接 : codeforces.com/contest/1941 A . Rudolf and the Ticket 直接暴力即可 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \n #define lowbit(x) (x&(-x)) #define sz(a) (int)a.size() #define p…...

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (3 / 5)

3.8 演员几何 我们已经看到了光照属性如何控制演员的外观&#xff0c;以及相机如何结合变换矩阵将演员投影到图像平面上。剩下的是定义演员的几何形状&#xff0c;以及如何将其定位在世界坐标系中。 建模 计算机图形学研究中的一个重要主题是建模或表示物体的几何形状。…...

pytorch 函数整理

pytorch 函数整理 method_code.init.code.co_argcount&#xff1a;获取method_code.init 函数的输入变量的数目&#xff1b; input_params method_code.init.code.co_varnames&#xff1a;获取method_code.init 函数的输入变量的名称列表&#xff1b; __enter__和__exit__魔…...

docker实战之制作filebeat镜像

一&#xff0c;下载filebeat-6.5.4安装包&#xff1a; https://www.elastic.c o/downloads/beats 二&#xff0c;拉取centos:7镜像 docker pull centos:7 三&#xff0c;将下载的filebeat包放在~/filebeat下&#xff08;自定义就好&#xff09; 四&#xff0c;创建名为fileb…...

【DAY11 软考中级备考笔记】数据结构 查找和排序

数据结构 查找和排序 3月12日 – 天气&#xff1a;晴 1. 顺序查找 顺序查找就是简单的从头一个一个的进行比较&#xff0c;注意它的平均查找长度 2. 折半查找 折半查找和二叉排序树一致&#xff1a; 优点&#xff1a;查找效率很高 缺点&#xff1a;要求必须是循序存储并且表中…...

华为机考:HJ102 字符统计

华为机考&#xff1a;HJ102 字符统计 描述 方法1 先将所有字符计算数量&#xff0c;在对比其中字符的assic码 #include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; bool cmp(pair<char, int> a,…...

安装配置HBase

HBase集群需要整个集群所有节点安装的HBase版本保持一致&#xff0c;并且拥有相同的配置&#xff0c;具体配置步骤如下&#xff1a; 1. 解压缩HBase的压缩包 2. 配置HBase的环境变量 3. 修改HBase的配置文件&#xff0c;HBase的配置文件存放在HBase安装目录下的conf中 4. 首…...

【更新】数字金融与企业ESG表现:效应、机制与“漂绿”检验数据集(2011-2022年)

参照温亚东&#xff08;2024&#xff09;的做法&#xff0c;本团队对来自统计与决策《数字金融与企业ESG表现&#xff1a;效应、机制与"漂绿"检验》一文中的基准回归部分进行复刻 一、数据介绍 数据名称&#xff1a;数字金融与企业ESG表现 参考期刊&#xff1a;《统…...

我的第一个mdp演示

我的第一个mdp演示 【免费下载链接】mdp A command-line based markdown presentation tool. 项目地址: https://gitcode.com/gh_mirrors/md/mdp 特性列表 轻量级命令行工具支持Markdown语法代码高亮显示 运行演示&#xff1a; bash mdp demo.md常用控制键&#xff1a; …...

艾尔登法环帧率解锁终极指南:告别60FPS限制的完整方案

艾尔登法环帧率解锁终极指南&#xff1a;告别60FPS限制的完整方案 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/Eld…...

最通俗的 LDA 线性判别分析教程

&#x1f525; 最通俗的 LDA 线性判别分析教程&#xff08;本科生/研究生都能懂&#xff09; 大家好&#xff0c;今天我们来彻底吃透LDA&#xff08;线性判别分析&#xff09;。 这是机器学习、模式识别、数据降维里必考、必用、必懂的算法&#xff0c;面试、比赛、写论文都高频…...

3天掌握Agent架构从设计到生产环境部署实战

3天掌握Agent架构从设计到生产环境部署实战 随着大语言模型技术的普及&#xff0c;单纯的模型调用已无法满足复杂业务场景的需求——企业需要能自主规划任务、调用工具、迭代执行的智能系统&#xff0c;Agent架构正是解决这一痛点的核心方案。本文将以3天为周期&#xff0c;从原…...

侧信道攻击防御指南:从智能家居到云服务器的7个关键防护措施

侧信道攻击防御指南&#xff1a;从智能家居到云服务器的7个关键防护措施 在数字化浪潮席卷全球的今天&#xff0c;数据安全已成为企业生存的命脉。然而&#xff0c;当大多数安全团队还在与传统的网络攻击周旋时&#xff0c;一种更为隐蔽的威胁正在悄然蔓延——侧信道攻击。这种…...

计算机内存与缓存完全指南

计算机内存与缓存完全指南 目录 计算机存储体系概览内存&#xff08;RAM&#xff09;深度解析 2.1 RAM 的基本原理2.2 DRAM vs SRAM2.3 DDR 内存发展历史与对比2.4 内存关键参数详解2.5 内存模组类型&#xff08;DIMM / SO-DIMM / LPDDR&#xff09; CPU 缓存深度解析 3.1 缓…...

超高效!这款音视频转文字神器,让你告别手动输入!

今天给大家推荐一款非常实用的软件——“Whisper”&#xff0c;它是一款功能强大的音视频转文字工具。这款软件是绿色版&#xff0c;双击打开后&#xff0c;会弹出一个黑色的界面框&#xff0c;请不要关闭它。使用这款软件非常简单。首先&#xff0c;点击【选择文件】按钮&…...

rustaceanvim 代码操作与宏扩展:提升 Rust 开发效率的实用方法

rustaceanvim 代码操作与宏扩展&#xff1a;提升 Rust 开发效率的实用方法 【免费下载链接】rustaceanvim &#x1f980; Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim 项目地址: https://gitcode.com/gh_mirrors/ru/rustaceanv…...

人大金仓Kingbase数据库PostGIS插件部署实战:从零到一解锁空间数据能力

1. 为什么你的Kingbase数据库需要PostGIS&#xff1f; 刚接触空间数据处理的开发者经常会遇到这样的困惑&#xff1a;明明数据库里存了经纬度坐标&#xff0c;却无法计算两点距离&#xff1b;明明有行政区划边界数据&#xff0c;却做不了区域叠加分析。这就是典型的"有数据…...

基于粒子群算法的主动配电网经济优化调度系统分析

基于IEEE33的主动配电网优化&#xff0c;采用IEEE33节点配电网进行仿真&#xff0c;搭建了含风光&#xff0c;储能&#xff0c;柴油发电机和燃气轮机的配电网经济调度模型&#xff0c;以总的运行成本最小为目标&#xff0c;考虑了储能以及潮流等约束&#xff0c;采用粒子群算法…...