shell脚本程序学习之变量

Linux Shell 脚本 阅读详情

变量

变量

自定义变量

定义变量

变量名=变量值

num=10

引用变量

$变量名

把变量 num 的值付给变量 i

 i=$num

显示变量

使用 echo 命令可以显示单个变量取值

echo $num

清除变量

使用 unset 命令清除变量

unset varname

变量的其它用法:

从键盘输入一个字符串付给变量 string

read string

定义一个只读变量, 只能在定义时初始化, 以后不能改变, 不能被清除。

readonly var=100

使用 export 说明的变量, 会被导出为环境变量, 其它 shell 均可使用

export var=300

注意: 此时必须使用下面命令 才可以生效

source xxx.sh

注意事项:

变量名只能包含英文字母下划线, 不能以数字开头

# 错误
1_num=10 

# 正确
num_1=20

等号两边不能直接接空格符, 若变量中本身就包含了空格, 则整个字符串都要用双引号、 或单引号括起来;

双引号内的特殊字符可以保有变量特性, 但是单引号内的特殊字符则仅为一般字符。

# 错误
name=aa bb  

# 正确
name="aa bb"  

# 输出: aa bb is me 
echo "$name is me"  

# 输出: $name is me 
echo '$name is me'

栗子 : var.sh

#!/bin/bash

echo "this is the var test shell script "
name="cpucode"

echo "$name is me"
echo '$name is me'
echo "please input a string"

read string
echo "the string of your input is $string"

readonly var=1000

#var=200

export public_var=300

image-20200801125332281

环境变量

shell 在开始执行时就已经定义了一些和系统的工作环境有关的变量, 我们在 shell 中可以直接使用$name 引用

定义:

一般在~/.bashrc 或/etc/profile 文件中(系统自动调用的脚本) 使用 export 设置,

允许用户后来更改 , 一般, 所有环境变量均为大写

 VARNAME=value;

 export VARNAME

显示所有的环境变量

env

清除环境变量

unset

常见环境变量:

保存注册目录的完全路径名

HOME

保存用冒号分隔的目录路径名, shell 将按 PATH 变量中给出的顺序搜索这些目录, 找到的第一个与命令名称一致的可执行文件将被执行。

PATH:
PATH=$HOME/bin:/bin:/usr/bin;

export PATH

主机名

HOSTNAME

默认的 shell 命令解析器

SHELL

此变量保存登录名

LOGNAME

当前工作目录的绝对路径名

PWD

栗子 : export2.sh

#!/bin/bash

echo "You are welcome to use bash"

echo "Current work dirctory is $PWD"
echo "the host name is $HOSTNAME"
echo "your home dir $HOME"
echo "Your shell is $SHELL"

image-20200801125413452

预设变量

传给 shell 脚本参数的数量

$#

传给 shell 脚本参数的内容

$*

运行脚本时传递给其的参数, 用空格隔开

$1、 $2、 $3、 ...、 $9

命令执行后返回的状态

用于检查上一个命令执行是否正确 ( 在 Linux 中, 命令退出状态为 0 表示该命令正确执行, 任何非 0 值表示命令出错)。

$?

当前执行的进程名

`$0`

当前进程的进程号

变量最常见的用途是用作临时文件的名字以保证临时文件不会重复

`$$`

栗子 : $.sh

#!/bin/bash

echo "your shell script name is $0"
echo "the params of your input is $*"

echo "the num of your input params is $#"
echo "the params is $1 $2 $3 $4"

ls
echo "the cmd state is $?"

cd /root

echo "the cmd state is $?"
echo "process id is $$"

image-20200801125502921

脚本变量的特殊用法: “” `` ’ () {}

(双引号): 包含的变量会被解释

""

(单引号): 包含的变量会当做字符串解释

''

反引号): 反引号中的内容作为系统命令, 并执行其内容, 可以替换输出为一个变量

``
$ echo "today is `date` "

转义字符:

同 c 语言 \n \t \r \a 等 echo 命令需加-e 转义

\

( 命令序列 ):

由子 shell 来完成, 不影响当前 shell 中的变量

( )

{ 命令序列 }:

在当前 shell 中执行, 会影响当前变量

{ }

栗子 : var_spe.sh

#!/bin/bash

name=teacher

string1="good moring $name"
string2='good moring $name'

echo $string1
echo $string2

echo "today is `date` "
echo 'today is `date` '
echo -e "this \n is\ta\ntest"

( 
    name=student;
    echo "1 $name" 
)

echo 1:$name

{
    name=student; 
    echo "2 $name"; 
}

echo 2:$name

image-20200801125540280

关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程 最近公司有个新项目使用的是高斯数据库,因为我们的项目是直接从别的项目组拿来的,配置都是已经配好的,但是在放到正式环境上之后出现报错。起初我们以为是测试和正式的版本不一致,但是结果是版本一致的。最后这个问题搞了我们几个小时,都没法解决。 阅读详情

相关推荐

win11 labelme 汉化菜单

【代码】win11 labelme 汉化菜单。

一直记录 1170

Shell脚本学习笔记(2)——Shell变量以及程序语句详解

文章主要记录了Shell的学习笔记,关于Shell变量、参数、如何计算、以及还有一些常用的循环如何使用。并且给予了详细的例程帮助理解。很适合作为学习Shell新手的入门笔记。

万里羊的博客 6980

QT+QTimer+QThread实现线程内的定时任务并且和主线程进行交互

在制作qt软件时,我们经常会用到qtimer定时器以及将其在非主线程中进行使用,甚至有的时候还需要和主线程进行交互。我总结了两种用法,仅供参考。以上即为QTimer和QThread联合使用的学习记录。

u011826081的博客 5686

【Linux脚本篇】什么是shell脚本,什么是shell变量

将系统命令放在一起,顺序执行,即系统命令堆积; 特定格式、特定语法、系统命令,共同组成的文件;变量是shell传递数据的一种方法,即用一个固定的字符串去表示不固定的值,便于后期引用

大虾好吃吗 1306

保姆级教程:2026版Windows电脑换新,微信QQ聊天记录无损搬家(附路径修改避坑指南)

本文提供2026版Windows电脑换新时微信QQ聊天记录无损迁移的保姆级教程,涵盖最新版微信/QQ的存储路径修改和避坑指南。通过详细步骤和实战技巧,确保数据迁移过程中不丢失任何珍贵对话记录和文件,特别适合需要保留完整聊天记录的用户。

weixin_42629815的博客 2492

TPS5430/54302调试血泪史:从‘烫手山芋’到冒烟烧板,我的5V电源到底怎么了?

本文深入剖析了TPS5430/TPS54302 DCDC电源芯片调试中的常见问题,包括异常发热、电压漂移等,并提供了从热设计到PCB布局的全面解决方案。通过实战案例,揭示了数据手册中未明确的‘潜规则’,帮助工程师避免烧板风险,提升电源系统稳定性。

weixin_28744423的博客 505

Shell 脚本学习

不难看出我们创建的helloworld.sh文件他的权限信息为:-rw-r–r–,对于我们现在登录的root账号也就是对应的第二个到第四个"rw-"也就是仅仅只有读写的权限没有执行的权限,我们如何解决这个问题,以上例子中,: 是一个空命令,用于执行后面的 Here 文档,<<‘EOF’ 表示开启 Here 文档,COMMENT 是 Here 文档的标识符,在这两个标识符之间的内容都会被视为注释,不会被执行。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。

qq_56440330的博客 1273

openssl命令数据摘要详解(SM3、sha256、MD5、dss1、mdc2、ripemd160)

SM3是由中国密码学家设计的密码哈希函数,是中国国家密码管理局(National Cryptographic Authority,简称:CNCA)颁布的国家密码算法标准。SM3属于密码杂凑函数家族,它可以计算任意长度的消息并生成固定长度(256比特,即32字节)的哈希值。SM3生成的哈希值长度为256比特(32字节),不管输入消息的长度如何,输出始终是固定的。SM3将输入数据划分为512比特(64字节)的分组,并对每个分组进行处理。

N阶二进制的博客 4462

Shell脚本学习笔记(黑马程序员shell全套教程)

这篇Shell教程介绍Shell作为连接用户与Linux内核的桥梁,通过80讲系统课程从零基础到实战。内容涵盖Shell基础知识、运行原理、解析器类型等,讲解了Shell脚本作为编程语言的特点(含变量、函数、逻辑控制等),以及如何通过Shell命令提升Linux系统管理效率。教程附带MobaXterm终端工具使用说明,适合Windows用户进行SSH连接和Shell学习。

weixin_67732682的博客 1215

机器学习(十九):梯度提升回归(GBR)

机器学习中的梯度提升回归算法原理与案例实战。

全栈川川 5157

系统学习Pytorch笔记一:Pytorch的数据载体张量与线性回归

Pytorch官方英文文档:https://pytorch.org/docs/stable/torch.html? Pytorch中文文档:https://pytorch-cn.readthedocs.io/zh/latest/ 1. 写在前面 疫情在家的这段时间,想系统的学习一遍Pytorch基础知识,因为我发现虽然直接Pytorch实战上手比较快,但是关于一些内部的原理知识其实并不是太懂,这样...

Miracle8070 9096

shell脚本基础

1.变量 1.1 什么是变量? 变量即可以变化的量 1.2 变量名称注意事项 只能包含字母、数字、下划线,并且不能以数字开头 不应该跟系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要用“_”下划线开头 最好做到见名知义 不能使用程序中的保留字,例如if、for等 1.3 变量类型 字符型 数值型 整型 浮点型 布尔型 1.4 变量操作 设置变量 引用变量 撤销变量 ...

wx号:wenhs5479的博客 412

事件驱动的 SAP 工作流:从 BOR 事件到 Event Linkage 的落地与排障全景图

摘要: SAP工作流中的Event是业务对象状态变化的系统广播机制,如发票录入、采购订单释放等事件。通过事件驱动,业务程序与流程引擎解耦,业务只需发布事件,流程引擎负责后续处理。文章详细解析了SAP工作流事件的完整链路,包括事件定义、触发机制、事件容器传递、SWE2配置的关键作用,以及事件不触发时的排查方法。重点介绍了事件在启动流程、终止任务、等待步骤和主动创建中的应用,并结合采购订单审批案例说明事件的实际使用场景和配置要点。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 190

Linux:Shell编程,Shell变量定义,查看,撤销,结果赋值

命令: ./myshell.sh 后缀可以是任何,甚至可以不用 sh ./myshell.sh 运行脚本两种方式 set 显示当前shell中所有变量 $HOME、$PWD、$SHELL、$USER 变量=值 unset 变量 readonly 变量=值 命令的返回值: A=`ls -la` A=$(date) 一、为什么要学习Shell编程...

yubin1285570923的博客 3222

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

第二部分 shell脚本编程

通常情况下,成功的命令返回0,而不成功的命令返回非0值。顾名思义,变量就是程序设计语言中的一个可以变化的量,当然,可以变化的是变量的值。从本质上讲,变量就是在程序中保存用户 数据的一块内存空间,而变量名就是这块内存空间的地址。如果有一系列经常需要使用的命令,把它存储在一个文件里,shell可以读取这个文件并顺序执行其 中的命令,我们把这样的文件就叫shell脚本。shell脚本按行解释文件里的命令。在程序的执行过程中,保存数据的内存空间的内容可能会不断地发生变化,但是,代表内存地址的 变量名却保持不变。

2301_79653828的博客 526

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

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

SHELL脚本学习---追求技术就像追求爱情

shell 脚本学习 注:本文参考菜鸟教程;仅为个人学习笔记 #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。 #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 echo 命令用于向窗口输出文本。 一、运行shell脚本的两种方式 1.作为可执行程序 chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本---告诉系统说,就在当前目录找 2.作为解释器参数 /bin/php test.php #这种

super_mokey21的博客 173

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Shell 脚本入门教程

Shell脚本是为Shell编写的脚本程序,通常用来自动化执行一系列的命令。Shell是一种命令解释器,它接收用户输入的命令并执行。/bin/bash# 定义变量age=25# 使用变量Shell脚本是一个强大的工具,可以用来自动化许多日常任务。通过学习Shell脚本,你将能够更加高效地进行系统管理、文件处理和数据分析。希望这个教程能帮助你入门Shell脚本编程。以上就是Shell脚本入门的基础教程,希望能帮助你快速入门并开始编写自己的Shell脚本!

qq_51514353的博客 720

shell脚本

1.shell简介 1.1 什么是shell 什么是shell呢?shell是用C语言编写的程序,它是用户使用 Linux 的桥梁。Shell既是一种命令语言,又是一种程序设计语言。简单来说Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。也可以这样认为,linux中的shell就是linux内核的一个外层保护工具,并负责完成用户与内核之间的交互 1.2 shell脚本 shell脚本就是一种专门使用shell编写的脚本程序,它虽然没有C++、Java

nbnbnbkls的博客 828

shell变量

将系统命令放在一起,顺序执行,即系统命令堆积;特定格式、特定语法、系统命令,共同组成的文件。

前端御书房 371

Shell脚本语言

Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。.........

m0_58212960的博客 1422

9.Shell脚本基础,变量,数值运算,条件判断,if和case语句等

一些基础知识 程序 程序:算法+数据结构数据:是程序的核心数据结构:数据在计算机中的类型和组织方式算法:处理数据的方式 程序编程风格: 过程式:以指令为中心,数据服务于指令对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令编程语言:人与计算机之间交互的语言低级编程语言:机器:二进制的0和1的序列,称为机器指令。与自然语言差异太...

weixin_34192816的博客 1103

shell脚本学习笔记

shell是核心程序kernel之外的指令解析器,是一个程序shell是终端上的一个解释器,可以对linux命令进行解释并执行,实现与操作系统的交互。shell和python一样,是解释型语言。

2402_83192253的博客 583

学习编写shell脚本(一)

学习编写shell脚本(一) 作为java程序员,虽然主流开发是在windows上使用eclipse等工具进行开发,但是进行现场环境的搭建、项目部署、项目监控等都需要在linux上进行,掌握linux的常用命令,是一个程序员的基本技能,但是对于shell脚本的编写,其实很多人在这个方面的技能的掌握还是比较不尽人意。 本人基本上对linux是比较菜的,都怪之前大学逃课有点多,现在才后悔莫及啊

u011351651的博客 1006

简单shell脚本练习

最近刚刚接触脚本语言,先从shell开始,练习一些简单的脚本。 <1>制作程序菜单 编写的脚本 运行结果 <2>统计基本信息 利用$可以在脚本中引用环境变量 <3>利用变量(打印环境变量) <4>添加用户变量 ...

ZBQ__的博客 545

shell脚本复习

{变量#word} 变量开头删除最短匹配的word字符串。内置命令:在系统启动的过程中就加载进入内存,常在内存中,执行效率高,但是占用资源。${变量%word} 变量结束删除最短匹配的word字符串。${变量##word} 变量开头删除最长匹配的word字符串。4.常用快捷键ctal+u,k,a,e,l,c,z,d,w,r,y。${变量%%word} 变量结束删除最长匹配的word字符串。${变量:start} 返回start开始后的字符串。

qq_54674051的博客 173

编写shell程序/脚本时需要注意的几个问题

在实际工作中运用shell程序时,总结的几个经常忽视的问题,如果不注意很可能导致一些麻烦事 判断用户的属性,比如权限,甚至是用户名 谨慎对待路径,绝对路径、相对路径不能混淆;而且一定要注意路径的切换,可能是主动的切换,也可能是无意间的切换——个人比较喜欢直接进入指定路径,退出时直接cd -即可退出到原路径 用户交互——能不交互就不交互吧,鬼知道用户会输入什么;另一方面,加强正则表达式的...

f1ybee的专栏 1523
上一篇: shell脚本程序学习之 条件测试语句
下一篇: shell脚本程序学习概述
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值