Shell编程规范与变量

shell从入门到精通(只需要这篇就够了) 在Unix-like系统中,Shell 是用户与操作系统内核之间的一个重要接口,它允许用户通过命令行或脚本与系统进行交互和控制。Shell 变量是 Shell 编程中的基础概念之一,它们允许我们存储和操作数据,是编写灵活脚本和命令行操作的关键。Shell 变量是用来存储数据的命名位置。每个变量都有一个名称(标识符)和一个对应的值。在 Shell 中,变量可以存储字符串、数字或任何有效的数据类型。 阅读详情

1.Shell脚本概述

Shell脚本的概念
	将执行的命令按顺序保存到一个文本文件
	给该文件可执行权限
	可结合各种Shell空值语句已完成更复杂的操作
Shell脚本应用场景
	重复性操作
	交互性任务
	批量事务处理
	服务运行状态监控
	定时任务执行
什么是“shell脚本”呢?
	简单的说,只要将平时使用的各种Linux命令按顺序保存到一个文本文件中,然后添加可执行权限,这个文件就是一个shell脚本

2.Shell的作用

Shell的作用——命令解释器,“翻译官”

​ 介于系统内核与用户之间,负责解释命令行

在这里插入图片描述

用户的登录Shell

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

​ 不同Shell的内部指令,运行环境等会有所区别

[root@server ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

3.编写第一个Shell脚本

1.编写脚本代码

​ 使用vim文本编辑器

​ 每行一条Linux命令,按执行顺序依次编写

[root@server ~]# vim first.sh
cd /boot
pwd
ls -lh vml*

2.执行脚本文件

方法一:脚本文件路径(绝对路径与相对路径)
	./first.sh			#必须有x权限
方法二:sh脚本文件路径		不需要x权限
	sh first.sh
方法三:source 脚本文件路径		会切入到自动脚本中的环境	不需要x权限
	source first.sh

3.更完善的脚本构成

脚本声明
注释信息
可执行语句
[root@server ~]# vim first.sh
#!/bin/bash
# This is my first.sh
cd /boot
echo "当前的目录位于:"
pwd
echo "其中以vml开头的文件包括:"
ls -lh vml*

4.重定向与管道操作

1.交互式硬件设备

​ 标准输入:从该设备接收用户输入的数据

​ 标准输出:通过该设备向用户输出数据

​ 标准错误:通过该设备报告执行出错信息

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

标准输入,标准输出和标准错误默认使用键盘和显示器作为关联的设备,与操作系统进行交互,完成最基本的输入,输出操作,即从键盘接收用户输入的各种命令字串,辅助空值信息,并将命令结果输出到屏幕上;如果命令执行出错,也会将错误信息反馈到屏幕上。

2.重定向操作

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

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

3.管道操作符号"|"

将左侧的命令输出结果,作为右侧命令的处理对象

cmd1 | cmd2 |[...| cmdn]

5.Shell变量的作用,类型

变量的作用
	用来存放系统和用户需要使用的特定参数(值)
	变量名:使用固定的名称,由系统预设或用户定义
	变量值:能够根据用户设置,系统环境的变化而变化
变量的类型
	自定义变量:由用户自己定义,修改和使用
	特殊变量:环境变量,只读变量,位置变量,预定义变量

6.自定义变量

定义一个新的变量
	变量名以字母或下划线开头,区分大小写,建议全大写
	变量名=变量值
查看变量的值
	echo $变量名
可以输入单个,也可以多个
[root@server ~]# echo $Product $Version
Python 1.1.1
赋值时使用引号
	双引号:允许通过$符号引用其他变量值
	单引号:禁止引用其他变量值,$是为普通字符
	反撇号:命令替换,提取命令执行后的输出结果
从键盘输入内容为变量赋值
	read [-p "提示信息"] 变量名
设置变量的作用范围
	格式1:export 变量名...
	格式2:export 变量名=变量值...
	
[root@server ~]# export Product Version		导出为全局变量
[root@server ~]# bash
[root@server ~]# echo $Product $Version
Python 1.1.1
整数变量的运算
	expr 变量1 运算符 变量2 [运算符 变量3]...
常用运算符
	加法运算:+
	减法运算:—
	乘法运算:\*
	除法运算:/
	求模取余运算:%

7.特殊的Shell变量

1.环境变量
	由系统提取创建,用来设置用户的工作环境
	配置文件:/etc/profile,~/.bash_profile
常见的环境变量
	PWD,PATH
	USER,SHELL,HOME

[root@server ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@server ~]# PATH="$PATH:/root"
[root@server ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root
2.只读变量
Shell变量中一种特殊情况,一经设定,其值是不可改变的,这种变量被称为只读变量。
[root@server1 ~]# name=cloud
[root@server1 ~]# readonly name		#设置为只读变量
[root@server1 ~]# echo $name
cloud
[root@server1 ~]# name=yun			#不可重新赋值
-bash: name: 只读变量
[root@server1 ~]# unset name		#不可删除
-bash: unset: name: 无法反设定: 只读 variable
注:只读变量的改变是不可逆的,一经只读,无法挽回。
3、位置变量(也称为位置参数,使用$1,$2,$3...$9表示)
当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数安装从左到右的书序依次赋值给位置变量。

[root@server1 ~]# vim adder2num.sh
#!/bin/bash
SUM=`expr $1 + $2`
echo "$1 + $2 =$SUM"
[root@server1 ~]# chmod +x adder2num.sh
[root@server1 ~]# ./adder2num.sh 12 34
12 + 34 =46
4、预定义变量
$#:表示命令行中位置参数的个数
$*:表示所有位置参数的内容
$?:表示前一条命令执行后的返回状态,为0即正确,任何非0即出现异常
$0:表示当前执行的脚本或程序的名称
shell脚本 无 阅读详情

相关推荐

Android开发必备:Shell 脚本语法基础

Shell脚本是Android开发中提升效率的重要工具,可用于自动化编译、设备调试和日志分析等场景。文章系统介绍了Shell脚本的核心语法:1.基础认知,包括脚本创建和执行方式;2.变量定义与使用规则,包括作用域和环境变量;3.运算符使用,涵盖算术、比较和逻辑运算;4.流程控制结构,如条件判断和循环;5.函数封装,实现代码复用。掌握这些语法后,开发者可编写实用脚本,如自动打包和测试平台上传脚本,并可通过文本处理命令进一步优化日志分析等复杂任务。

学无止境 2万+

sh脚本命令

cremeb多商户打包代码的时候,总是重复的工作,就想着写了个脚本,记录一下sh脚本用到的一下方法: 点击了解 CRMEB多商户 其他开源项目源码下 :了解更多 小姐姐二维码 一. #!/bin/bash 文件第一行,提示电脑后面的代码需要用 /bin/bash 来解读 echo 输出内容, if流程控制 if [ ] ;#条件 then else fi -a #and 与 操作 if [ $a -a $b ] -o #or 或 操作 if [ $a -o $b ] 文件比较 if [ -d

weixin_52673448的博客 6612

FoundationPose 4090部署 真实场景迁移

复现并应用foundationpose

m0_52835296的博客 613

Java工具 - sh脚本/命令

编写shell脚本,常用命令

xiaoran879的博客 1万+

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(模型转换)

本文详细介绍了将YOLOv26 ONNX模型转换为RKNN模型的过程,适用于RK3588平台。主要内容包括:1)量化数据集的创建,通过随机抽取最多400张JPG图片生成校准数据集;2)ONNX转RKNN的完整脚本,支持多种量化方式和平台适配;3)模型转换的参考调用方式;4)模型结构对比展示。文章还提供了注意事项,强调量化数据集图片尺寸、mean/std值需与实际推理一致,并给出精度优化建议。该转换流程为YOLOv26模型在RK3588上的高效部署提供了完整解决方案。

qq_64366203的博客 1126

VC Spyglass CDC实战:如何快速定位和解决重汇聚问题(附详细调试步骤)

本文深入探讨了在SoC设计中利用VC Spyglass进行CDC验证时,如何高效定位和解决棘手的重汇聚问题。通过实战演练,详细解析了重汇聚的本质、VC Spyglass的检测逻辑,并提供了从报告筛选、GUI原理图分析到制定设计修复或约束豁免方案的全套调试步骤,帮助工程师快速攻克这一常见验证难题。

weixin_29219539的博客 753

Shell 编程规范与变量

函数名应该具有描述性,遵循与变量命名相同的原则。# 好的函数命名# 函数体return 0在 Shell 中,变量的赋值使用等号,等号两边不能有空格。age=25遵循 Shell 编程规范能够使脚本更加清晰、易于维护和扩展;而熟练掌握变量的使用方法,则是实现各种功能的关键。通过不断实践和学习,你可以编写出高质量的 Shell 脚本,提高工作效率。在实际应用中,还需要根据具体需求和场景,灵活运用这些规范和知识。分享除了Bash,Shell还有哪些常见的变体?如何在Shell脚本中使用数组?

2501_91112123的博客 1250

全志T527 适配双目tp2815_mipi

在全志T527 linux下适配双目TP2815 mipi摄像头,支持六路同时输出,四路可用作360环视、一路face id等,一路用于其它开发。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3816

Shell编程规范及变量

目录 一、Shell脚本编程概述 1.1Shell的作用 1.1.1Shell基本概念 1.1.2Shell脚本应用场景 1.1.3Shell作用——翻译官 1.1.4linux中有哪些Shell 1.1.4 为什么系统上合法的Shel1要写入/etc/she1ls这个文件 1.1.5 用户什么时候可以取得shell来工作?用户默认会取得哪一个shell? 1.2Shell编程规范 1.2.1编写脚本规范 1.2.2Shell脚本执行方法 1.2.3命名要求 1.2.4脚本错误

m0_51160032的博客 4999

科研——ICONIP论文修改和提交

ICONIP说明文档

Blackoutdragon的博客 6647

rk628d修改默认分辨率

在rk3568上使用628d hdmi转mipi,在628d已经调试好的情况下,客户新增需求:视频输入这边的推荐分辨率固定在1024x768。

m0_60805802的博客 2053

第十八章、shell编程规范与变量

格式:变量名=变量值变量命名规则:以字母或下划线开头,区分大小写是由Shell预先定义好的特殊变量,它们在脚本中有着特定的用途。:上一个命令的退出状态。$0:脚本的名称。$$:当前Shell进程的进程ID(PID)。:后台运行的最后一个进程的进程ID。$-:显示当前Shell使用的选项。$*和@$:如前所述,用于处理命令行参数$#:表示命令或脚本要处理的参数的个数。

moonligth111的博客 2475

边缘计算与产业生态系统

目录 文章目录目录边缘计算产业参与者边缘计算产业生态系统 边缘计算产业参与者 边缘计算领域参与者众多,主流公司以打造生态优势为目标,基于自身服务层级向产业链上下两端进行拓展,目前市场主要参与者有: 系统集成商:在产业头部,具有广泛的能力,可以集成不同生态系统公司的产品,具有一定的全球性属性,在边缘计算领域大多由云服务商、电信运营商担任。 云服务商:具有领先的云技术优势与应用生态体系,同时拥有全球性资源布局与市场资源生态,并渴望成为边缘计算主导者。 电信运营商:具有边缘基础设施优势,以及不可替代的

烟云的计算 2103

Linux之Shell编程规范与变量

将要执行的命令按顺序保存到一个文本文件给该文件可执行权限可结合各种Shell控制语句以完成更复杂的操作自动化运维批量化重复操作可以编写脚本结合计划任务自动周期运行减轻管理员工作量提高处理文本文件的速度避免配置出错格式:变量名=变量值变量命名规则:以字母或下划线开头,区分大小写环境变量由系统提前创建,用来设置用户的工作环境使用 env 命令可以查看到当前工作环境下的环境变量。

qq_71300653的博客 2227

最新腾讯手游游戏appid列表及urlScheme一览 urlscheme查询

[全网独家] 2024最新腾讯游戏appid列表及urlScheme一览 手游包含王者荣耀QQ飞车我的世界PUBG吃鸡和平精英金铲铲之战三角洲行动QQ炫舞拳皇98OL欢乐斗地主 元梦之星使命召唤等

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Shell 编程规范与变量​

Shell 编程在系统管理、自动化任务执行等领域发挥着至关重要的作用。编写清晰、规范且易于维护的 Shell 脚本不仅能提高工作效率,还能减少错误的发生。而变量作为 Shell 编程中的基础元素,对脚本的灵活性和功能性有着深远影响。本文将深入探讨 Shell 编程规范以及变量的相关知识,帮助开发者写出更优质的 Shell 脚本。同时,我们也会详细介绍 Shell 内常见的符号和字符,它们在 Shell 编程中起着关键作用,熟练掌握它们能让你更好地驾驭 Shell 脚本。定义变量。

2503_91100205的博客 1092

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

shell编程规范与变量

shell编程规范与变量

shanjun12的博客 729

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: 部署LVS-NAT项目案例
下一篇: Nginx优化与防盗链的用法
tanwenlong01
博客等级 码龄6年 26粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值