10分钟带你了解Shell编程规范与变量

shell学习教程(超详细完整) 为了方便以后工作和复习,记录一下学习shell脚本的笔记,看这篇文章需要对linux系统熟悉 文章目录一、什么是shell?为什么要学习和使用shell?二、shell的分类shell脚本的执行三、shell变量1.变量的命名规则:2.变量的分类:2.1用户自定义变量:2.1.1变量定义2.1.2变量调用2.1.3变量查看2.1.4变量删除2.2环境变量:1)环境变量设置2)环境变量查询和删除3)系统默认环境变量2.3位置参数变量:2.4预定义变量:3.只读变量:4.接受键盘输入:四、shell 运算符1. 阅读详情

Shell概述

在说什么是shell脚本之前,先说说什么是shell。

shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。

shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。

shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序。

那么什么是shell脚本呢?

shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

shell脚本中最重要的就是对shell命令的使用与组合,再使用shell脚本支持的一些语言特性,完成想要的功能。

将要执行的命令按顺序保存到一个文本文件
给该文件执行权限
可结合各种shell控制语句已完成更复杂的操作

应用场景

1.重复性操作
2.交互性任务
3.批量事务处理
4.服务运行状态监控
5.定时任务执行

用户的登录shell

登录后默认使用的shell程序,一般为/bin/bash

编写脚本代码

使用vim文本编辑器
每一行一条linux命令,按执行顺序依次编号
vim编辑器有检测语法错误功能

重定向

在实际的Linux系统维护中,可以改变输入,输出内容的方向,而不使用默认的标准输入,而不使用默认的标准输入,输出设备(键盘、显示器,这种操作称为重定向)

交互式硬件设备

标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

重定向与管道操作

重定向输入< 从指定的文件读取数据,而不是从键盘输入
重定向输出> 将输出结果保存到指定文件(覆盖原有内容)    >>将输出结果追加到指定的文件尾部
标准错误输出2>将错误信息保存到指定的文件(覆盖原有内容)2>>将错误信息追加到指定文件中
混合输出&>将标准输出,标准错误的内容保存到一个文件中

shell变量的作用、类型

变量的作用:

用来存放系统和用户需要使用的特定参数(值)
变量名:使用固定的名称,由系统预设或用户自定义
变量值:能够根据用户设置:能够根据用户设置、系统环境变化而变化

变量的类型:

自定义变量:由用户自己定义,修改与使用
特殊变量:环境变量、只读变量、位置变量、预定义变量

定义一个新的变量

变量名以字母或者下划线开头,区分大小写,建议全大写

查看变量的值

ehco $变量名
	product = python
	version = 2.7
	echo $product $version

变量赋值的特殊操作

(1)双引号(“)双引号主要是界定字符串的作用,特别是当主要赋值的内容包含空格时必须以双引号括起来。

PYTHON = python 2.7.13 //错误赋值
bash:2.7.13:command not
PYthON = ”python 2.7.13“ //正确的赋值
echo $PYTHON

在双引号范围内,使用$符号可以引用其他变量的值(变量引用),从而能够直接调用现有变量的值来赋给新的变量。

PyVERSION =”Python $Version“//以变量的值进行赋值
echo $PyVersion

变量

环境变量

定义:由系统提前创建,用来设施用户的工作环境
配置文件:/etc/profile      ~/.bash_profile

常见的环境变量
PWD、PATH
USER、SHELL、HOME
echo $ PATH
PATH="$PATH:/root"
echo $PATH

只读变量

shell特殊情况、一经设置、其值是不可改变的,这种变量就是只读变量,不可修改,不可删除

位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量
使用$1…9表示,位置变量个数为0-9

预定义变量

$#     表示命令行中的参数个数
$*     表示所有位置参数的内容
$?     表示前一条命令执行后的返回状态,返回值为0的表示执行正确,返回任何非0的值表示执行出现异常
$0     表示当前执行的脚本或程序名称
Shell编程规范及变量 文章目录一.Shell脚本1.1Shell概述1.2Shell脚本 一.Shell脚本 1.1Shell概述 Shell是Linux系统中开机自动加载的一个特殊程序,它将用户输入的指令,转换成Linux内核可以识别的语言,从而让内核执行调用硬件。 Bash是Linux系统中默认使用shell的程序,它位于/bin/bash。 1.2Shell脚本 将需要执行的命令保存到一个文件中,按照顺序执行,它不需要编译,它是解释型的 ... 阅读详情

相关推荐

shell详细介绍(清晰明了)

变量名称可以由字⺟、数字和下划线组成,但是不能以数字开头,环境变量名建议⼤ 写。等号两侧不能有空格在bash中,变量默认类型都是字符串类型,⽆法直接进⾏数值运算。变量的值如果有空格,需要使⽤双引号或单引号括起来在 Bash 中定义⼀个数组并不难。只需要使⽤⼀对括号来包含所有元素。如下示例:注意:分隔数组中每个元素用空格!!!arr=("陈少熙" "何浩楠" "王一珩") #等号两边不要空格,字符串之间要用空格分隔#遍历数组。

weixin_65978343的博客 2966

Shell基本概念

一、什么是shell shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。 shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。 shell 本身并不是内核的一部分,它只是站在内核的基础上编写的

栗筝i的博客 7243

Shell编程-运维

什么是运维 术语名词 IDC--(Internet Data Center)互联网数据中心,主要服务包括整机租用、服务器托管、机柜租用、机房租用、专线接入和网络管理服务等。广义上的IDC业务,实际上就是数据中心所提供的一切服务。客户租用数据中心的服务器和带宽,并利用数据中心的技术力量,来实现自己对软、硬件的要求,搭建自己的互联网平台,享用数据中心所提供的一系列服务。 ISP--(Inte...

demonson的专栏 8054

学习shell,这一篇就够了(shell基础)

一、shell概述 1、什么是shell shell是一种命令语言,是为使用者提供操作界面的一种软件,软件可以接收用户的命令,并且执行用户输入的命令,然后对相应的程序进行调用。 2、shell可以分为两种方式 1)shell命令行式 例如一些系统linux,从传统的意义上来说,如果不去注明的话,shell一般是命令行式。shell是传统操作和外部的接口,shell是操作系统的最外层,并且管理用户和操作系统之间的交互,操作系统完成用户的操作,并且处理输出结果。shell实现了用户和系统之间的交互,用户在键盘上

Linux爱好者的博客 1万+

Linux环境变量与Shell变量的本质区别及实战操作指南

环境变量和Shell变量是Linux进程通信与配置管理的基础机制,前者通过操作系统环境块传递给子进程,后者仅限当前Shell会话作用域。其核心原理源于POSIX进程模型中的变量导出(export)机制——赋值创建变量,export标记继承权限。这一机制直接决定命令查找(PATH)、程序启动(JAVA_HOME)、开发工具链(Python/conda)能否正常工作,也是Docker容器、Kubernetes ConfigMap、CI/CD流水线等现代基础设施中配置注入的底层支撑。本文聚焦真实终端场景,详解en

weixin_30588675的博客 339

COLMAP在Ubuntu下的编译陷阱与实战避坑指南——从环境配置到三维重建全流程

本文详细介绍了在Ubuntu系统下编译和配置COLMAP三维重建工具的全流程,包括环境准备、依赖库安装、CUDA加速配置以及常见编译问题的解决方案。通过实战案例演示了从图像特征提取到稠密重建的完整步骤,并提供了性能优化和问题排查的实用技巧,帮助用户高效完成三维重建任务。

weixin_29003437的博客 1048

一次压完几百张照片:PowerToys Image Resizer 批量改尺寸实战 + 排错表

微软开源的 PowerToys 工具集里藏着 Image Resizer(图片缩放器),在资源管理器里选中一堆照片,右键就能批量改成统一尺寸,不用打开修图软件逐张导出。它默认不碰原图、而是生成一份缩放后的副本,就算选错参数,原件还在原地。适合经常要发图、传图、建素材库的普通用户,跟着做一遍就能上手。 ## 🧰 开始之前:把三件事确认到位 - **安装与模块**:安装并启动 PowerToys

gitblog_00852的博客 406

手把手教你用Simulink给C2000配置SCI串口发送数据(附模型与避坑点)

本文详细介绍了如何使用Simulink为C2000系列微控制器配置SCI串口发送数据,包括硬件资源分配、模型搭建、参数设置及调试技巧。通过代码生成和串口通信实践,帮助开发者高效实现嵌入式系统开发,避免常见通信问题。

weixin_30831529的博客 295

Linux之vim编辑器与shell编程

目录vim编辑器vim编辑器介绍 vim编辑器 vim编辑器介绍

B+Tree的博客 1598

uniapp原生安卓插件开发之路

声明: 我的功能需求:全局悬浮框,也就是在其他应用上依旧能悬浮。查遍uni文档,无法实现,甚至native.js也无法实现,无奈只能走上原生插件开发这条不归路了。(吐槽:天天写前端js,突然写了下android简直要炸,public static String啥的,var不香嘛,不过别人严谨肯定还是有别人道理的,加油吧,争取能入个门!) 本人不懂安卓开发,完全安卓小白,所以安卓方面可能表达的不是很好,安卓代码可能写的不优美,但我功能最终还是实现了。但是为了需求,能力总能被“逼”出来。有描述错误的还望指正

Jone's Area 1万+

1.5元主控搞定高精度电流电压采集?STC8G1K08+INA180A3硬件设计全解析

本文详细解析了如何利用成本仅1.5元的STC8G1K08单片机与INA180A3电流检测放大器,构建一套高精度、低成本的电流电压采集系统。文章深入剖析了硬件设计精髓,包括利用MCU内部上拉电阻直驱数码管以节省成本、INA180A3的配置与计算,以及实现高频率采集并与上位机高速通信的软件策略,为嵌入式开发中的极致性价比设计提供了完整方案。

weixin_29166013的博客 600

Shell编程

*Shell是什么?   任何发明都具有供用户使用的界面。UNIX供用户使用的界面就是Shell(DOS的command熟悉吧,但UNIX的要强大的多)。 Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。   为了不同的需要,UNIX提供了不同的Shell。现在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)为例,一步步的领略UNIX Sh

q30的专栏 5168

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3111

Shell 基础核心:变量定义、环境配置与语法技巧全解析

在 Linux 系统运维与开发过程中,Shell 作为核心交互工具,其变量的灵活运用与环境配置是提升操作效率、实现自动化运维的基础。本文将从普通变量的定义与使用、环境变量的配置与优化、命令替换与字符转义等核心维度,全面解析 Shell 变量相关的核心知识点,助力大家轻松掌握 Shell 基础语法,提升实操能力。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 475

树莓派 SPI操作

扩展板配备一款0.96inch,128864分辨率的oled显示屏,通过SPI控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi的操作函数。管脚如下如所有,左边方框的管脚分别为MOSI MISO SCLK,左边CE0,CE1为两个片选管脚,分别对应上图中的spidev0.0,spidev0.1两个设备。下载spidev库,复制到树莓派,并行运行如下命令解压安装。spi设备,此处设备为/dev/spi-decv0.0。在/dev路径下面,我们可以发现两个spi设备。

weixin_46529898的博客 914

破晓之光:GTK#框架让C# WinForm程序跨平台运行的终极指南

GTK#框架的出现,彻底打破了C# WinForm只能在Windows上运行的桎梏。

墨夶的博客 605

5分钟带你找到学习shell的方向

3、source./filename.sh(source命令是一个shell内部命令,其功能是读取指定的shell程序文件,并且依次执行其中的所有语句,并没有创建新的shell进程,所以脚本里面所有创建的变量都会保存到当前的shell里面)如果有一系列经常需要使用的命令,把它存储在一个文件里,shell可以读取这个并顺序执行其中的命令,我们把这样的文件就叫做shell脚本。对于一个合格的系统管理员来说,学习和掌握shell是非常重要的,通过编程,可以很大程度上简化日常的维护工作,使得管理员从简单的。....

qq_48854060的博客 480

详细解释xilinx源语的使用:IDELAYE2和IDELAYE3

/ 完整的数据位对齐模块input wire dqs, // 数据选通input wire [7:0] dq_in, // 8位数据输入output wire [63:0] data_out // 并行数据输出// 延迟控制信号// 每个数据位都需要独立的IDELAYgenvar i;i < 8;// IDELAYE2实例.IDELAY_VALUE (10), // 初始值。

baidu_34971492的博客 435

终极Google代码规范快速入门:5分钟掌握编程规范精髓

Google代码规范是一套经过行业验证的编程标准,能帮助开发者编写更易读、可维护的代码。本指南将用最简洁的方式,带你快速掌握这套规范的核心要点,让你的代码风格更专业、协作更高效。 ## 为什么需要代码规范? 在团队协作中,统一的代码风格就像统一的语言,能大幅降低沟通成本。Google代码规范不仅关注代码的美观,更注重可读性和可维护性。遵循规范可以: - 🚀 提高团队开发效率 - 🛠️ 减少

gitblog_00566的博客 505

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

idea shell 中的函数 跳转_15分钟学会Shell编程

一:什么是shellshell是用户与linux内核交互的外壳,通过暴露外部方法(如 list),来达到人机交互。shell的编程是一种脚本编程,面向命令编程,最常用的解释器为bash解释器。shell可以python代替,shell和python各有优缺点。bash是一个可执行文件,及shell的解释器cd是shell内置的方法,就像print()是python内置的一个函数一样。二:Hello...

weixin_39663602的博客 637

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux快速入门(3)——20分钟掌握Shell编程

本文针对Linux的新手小白,对Shell编程进行入门级的讲解,从运行第一个Shell程序Hello World,到设计编写复杂的综合脚本程序,本文给出了手把手的教学和相应代码,为想要入门Bash编程的小伙伴提供了学习指南和入门教程。

猪猪和超超的博客 603

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Shell脚本(一)

20.1 什么是Shell脚本 shell脚本并不能作为正式的编程语言,因为它是在linux的shell中运行的,所以称为shell脚本。事实上,shell脚本就是一些命令的集合。 假如完成某个需求需要一口气输入10条命令,对于简单的命令,我们可以直接在shell窗口中输入,但如果是比较长且复杂的命令,一次一次敲就会显得很麻烦。我们可以把这10条命令都记录到一个文档中,然后去调用文档中的命令,这样...

变成习惯 5万+

3分钟上手shfmt:让你的Shell脚本从此整洁规范

你是否还在为团队中混乱的Shell脚本格式头疼?是否经常因不同开发者的代码风格差异而降低协作效率?本文将带你快速掌握shfmt工具,3分钟内实现Shell脚本的自动格式化,让代码风格统一不再是难题。 读完本文你将学会: - 安装并配置shfmt工具 - 使用命令行参数快速格式化脚本 - 通过EditorConfig实现项目级格式化规则 - 集成shfmt到开发流程中 ## 什么是shfmt ...

gitblog_00269的博客 1194

Shell脚本编程入门与实践指南

Shell脚本作为Linux/Unix系统中的核心自动化工具,通过解释执行命令序列实现高效任务处理。其核心原理是将系统命令、控制结构和变量组合成批处理程序,特别适合系统管理、文件操作等场景。bash作为主流Shell解释器,兼容性广泛且功能丰富。在工程实践中,Shell脚本常用于日志分析、系统监控等自动化任务,结合调试技术和错误处理机制可显著提升脚本可靠性。掌握变量操作、流程控制等基础语法后,通过性能优化和最佳实践可构建高效的自动化解决方案。

weixin_30680385的博客 343

1.Shell脚本修炼手册---为什么要学Shell编程?

《从零开始学Shell编程:Linux运维必备技能》摘要: Shell是用户与Linux系统交互的命令翻译器,bash是最常用的Shell类型。Shell脚本通过批量执行命令实现自动化运维任务,能高效处理日志分析、服务器监控等重复性工作。学习Shell编程需要掌握基本Linux命令、vim编辑器及正则表达式。建议从简单脚本入手,逐步掌握变量、判断、循环等语法。Shell主要分为Bourne家族(sh/ksh/bash)和C家族(csh/tcsh),其中bash是Linux系统的主流选择。对于运维人员而言,S

2202_75490033的博客 841

shell编程

shell编程 一、格式 命名格式:xxx.sh 内容格式: 头部:#!/bin/sh 输出语句:echo 二、运行 sh xxx.sh或者bash xxx.sh 三、变量 shell没有数据类型,所以在申明变量时直接写 格式:变量名=值 注意:等号两边不能有空格,值也不能用空格分开 在使用变量时,需要通过**$**来进行引用 四、位置变量 $0:脚本名 $1:参数1 $2:参数2 … 例如:echo “脚本名$0,参数1$1,参数2$2…” 运行时给参数:sh xx.sh 10 20 此时的参数2的值就是

qq_44248502的博客 236
上一篇: 所有Linux工程师必须会的SSH协议及基础实验配置
下一篇: VMware虚拟机启动后出现黑屏解决方案
糖果剑客
博客等级 码龄6年 97粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值