shell脚本变量

Shell脚本接收位置参数,变量的定义和运算、流程控制语句演示 本文系统介绍了Shell脚本编程中的变量使用和流程控制语句。主要内容包括: 变量部分: 变量获取方式($符号、read命令) 变量类型(局部/全局变量、字符串/整数/数组变量) 变量运算方法($(())、let、expr、bc等) 字符串处理技巧(截取、替换、删除等) 流程控制部分: if语句(单分支/多分支) for循环(常用格式、九九乘法表示例) while循环 case语句(分数等级判断示例) 文章通过大量实例代码演示了Shell脚本编程的核心语法要素,适合作为Shell编程的入门参考。 阅读详情

一、简介

       变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。

       在Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。如C/C++ ,变量分为整数、浮点数、字符串、布尔等多种类型。当然,如果有必要,你也可以使用declare/typeset Shell内建命令显式定义变量的类型,但在一般情况下没有这个需求,Shell 开发者在编写代码时自行注意值的类型即可。

二、变量类型

1、根据变量的生效范围可分为

  • 环境变量(全局变量):全局生效,在任何bash环境中都可以识别。

  • 局部变量:生效范围为当前shell进程。对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效。

  • 本地变量:生效范围为当前shell进程中某代码片断,通常指函数。 只能在定义它们的函数/脚本内部中使用。

2、根据是否由系统定义可分为

  • 内置变量:由系统维护,用于设置工作环境。如PS1,PATH,HISTSIZE, HOSTNAME,USER。
  • 自定义变量:由用户自己定义、修改和使用。

3、特殊变量

1)环境变量(全局变量):全局生效,在任何bash环境中都可以识别。

需要记住的常用环境变量:

  • $PATH 表示可执行文件的默认路径
  • $USER 表示用户名称
  • $HOME 表示用户的宿主目录
  • $LANG 表示语言和字符集
  • $PWD 表示当前所在工作目录

 环境变量的特性:

  • 可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量。
  • 一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程。
  • 一般只在系统配置文件中使用,在脚本中较少使用。

  环境变量的配置文件:

       自定义的环境变量只是临时生效,退出系统后就会失效。需要将自定义的环境变量放入配置文件中,才会永久生效。配置文件可以用来长期变更或设置环境变量。

全局配置文件: /etc/profile

用户独立的配置文件: ~/.bash_profile

操作过程:

2)只读变量:read only, 只可以读取不可以更改。

只读变量只能被赋值一次。只读变量在取得初始值之后,只能进行读取操作,不能重新赋值或删除

操作过程:

 3)位置变量: 通过命令行给脚本传递参数 。n(n是正整数),n(n是正整数),n(n是正整数),{10} 要加花括号。

操作过程:

4)预定义变量:用来保持脚本程序的执行信息。

  • $0 :当前脚本名称(如果是软链接,显示当前软链接文件名)。
  • $? :查看上一次命令的执行状态,返回0为正常,非0为错误。
  • $* :返回所有参数,当整体返回。
  • $@ :返回所有参数,当个体返回。
  • $# :获取当前shell命令行中参数的总个数。
  • $_ :在此之前执行的命令或脚本的最后一个参数。
  • $$ :获取当前进程的PID。

操作过程:

测试$?的作用

测试$0、$$、$#、$@的作用  

三、符号的作用

  • 双引号" ":会把引号的内容当成整体来看待。强引用,识别变量,允许通过$符号引用其他变量值。
  • 单引号' ':会把引号的内容当成整体来看待。弱引用,禁止引用其他变量值,单引号内的内容都会被认为是普通字符。
  • 反撇号` ` 和 $() :调用命令执行后输出的结果。如果存在嵌套,不能使用反撇号。
  • 花括号{ } :定义变量范围。 echo ${color}${price}

相关推荐

别再只调PID了!手把手教你从LC谐振到检波,搞定STM32智能车电磁循迹硬件电路

本文深入解析STM32智能车电磁循迹硬件电路设计,从LC谐振选频到数字信号处理,提供完整的信号链路设计要点与实战技巧。通过优化电磁杆布局和信号放大电路,显著提升赛道位置检测精度,误差可控制在±0.5cm以内,为智能车竞赛提供可靠硬件支持。

weixin_29220405的博客 263

Shell脚本——变量

详细介绍了Shell脚本的变量基本格式以及使用方法,分开介绍了五种变量的类型与常用例子

MONGJUK的博客 6820

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 936

Shell脚本的变量

1、shell脚本变量简介 变量是计算机语言中能储存计算结果或能表示值的抽象概念。保存将来会变化的数据,即使数据变 化,直接调用变量即可。 Shell 变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或 系统环境的变化而相应变化。通过使用变量,Shell 程序能够提供更加灵活的功能,适应性更强。 2、变量的作用 用来存放系统和用户需要使用的特定参数(值) 变量名:使用固定的名称,由系统预设或用户定义 变量值:能够根据用户设置、系统环境的变化而变化

weixin_45305723的博客 9424

思科9117AP从零配置EWC模式实战:Wi-Fi6网络搭建避坑指南

本文详细介绍了思科9117AP在Wi-Fi6网络环境下配置EWC模式的实战指南,涵盖镜像准备、网络环境配置、模式转换步骤及高级运维技巧。通过EWC模式,企业可实现控制器与AP的一体化部署,显著降低成本和简化运维,特别适合中小企业Wi-Fi6网络搭建。

weixin_28318011的博客 333

【ESP32CAM+Android+OpenCV】自定义目标数据集、训练自己的OpenCV模型部署到手机APP并对ESP32CAM无线图传显示并实时检测识别目标_资料编号30

本项目实现自定义目标数据集(想检测什么就检测什么,按照本文教程自己来更换目标)、训练自己的OpenCV模型实时检测识别(pycharm工程)。手机APP(Android studio工程)部署OpenCV模型实现对ESP32CAM(arduino工程)无线WIFI图传过来的图像实时检测识别。 本文以火焰检测识别为例进行演示,通过该过程,结合本文可自定义尝试更换为其它目标的检测,例如更换为车辆、车牌、手势、人脸面部活动、人脸表情、火焰烟雾、行人、口罩、行为、水果、植物、农作物、建筑、损伤等等部署进行检测。

嵌入式阿齐Archie 3482

Shell脚本和变量

什么是shell?就是与内核沟通的界面、应用程序等等。比如你要放音乐,你的计算机通过你在shell输入的打开音乐的命令,shell再告诉操作系统的内核用户希望打开音乐,内核在通过CPU调度、内存管理、磁盘输入输出等工作。将硬件调动,这时硬件声卡才会工作,硬件才是实际的工作者。将要执行的命令按顺序保存到一个文本文件给该文件可执行权限可结合各种shell控制语句已完成更复杂的操作shell中定义变量操作简单,不像其他高级语言(c++、python等)那么复杂,直接指定变量名称并赋给初始值(内容)即可。

m0_74412260的博客 582

HotSpot G1 GC 的分区记账、SATB 并发标记与停顿目标调优解析

线上GC毛刺该调停顿目标、加大新生代还是换收集器?本文从HotSpot G1的设计出发,梳理分区与巨型对象、卡表与记忆集、写屏障与细化线程、停顿预测、SATB并发标记、自适应IHOP、混合回收规则及Full GC兜底,并注明JDK8至JDK27的版本差异。文中在JDK8与JDK17上实测:停顿目标从200ms降到20ms,伊甸区缩小四成、P99下降但仍超目标;巨型对象会反复触发又撤销并发标记;JDK17并行Full GC平均停顿约为JDK8的三成。最后给出日志解读、参数清单、调优流程与选型。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

详解shell脚本中的变量

变量就是内存一片区域的地址 变量存在的意义:命令无法操作一直变化的目标,用一串固定的字符来表示不固定的目标可以解决此问题 shell脚本中变量的定义方法 1.环境级别 2.用户级别 3.系统级别 三、变量名称 四、变量的转译 1、转译 2、声明 3、变量的数组 五、Linux中命令的别名设定 六、用户环境变量的更改进程之间是不能共享资源的,一个进程中的线程可以使用该进程的资源。

好久没说梦想的博客 3550

【拼多多笔试题汇总】2024-03-24-拼多多春招笔试题

A 小镇上有个奇特的游戏。游戏开始时,A 先生准备了一排 nnn 个物品。K 小姐和卢小姐则轮流进行操作。首先,K 小姐可以选择移除至多 xxx 个物品。接着,卢小姐也可以选择移除剩余物品中的至多 yyy 个。游戏的目标是,K 小姐想尽量让剩余物品的价值之和最大化,而卢小姐则想将剩余物品的价值之和最小化。假设两人都采取最优策略,请问最后剩余物品的价值之和是多少?第一行包含五个正整数 n,m,k,x,yn, m, k, x, yn,m,k,x,y,分别表示物品的总数、K 小姐最多可移除的物品数、卢小姐最多可移

春秋招笔试突围 1万+

Proxmox VE 9 更换源

创建一键更换Proxmox VE 9.0源的Bash脚本,实现快速替换软件源。脚本需包含订阅提醒关闭功能,兼容Proxmox VE 9.0系统,执行命令为bash /proxmox_9.0_Repo.sh。该工具可简化源配置过程,自动处理系统更新源替换及订阅提示屏蔽,适合需要快速配置Proxmox环境的用户使用。

极致,细节 4988

Shell脚本 —— Shell 变量

在Shell脚本中,变量是存储数据的基本单元,它们可以包含字符串、数字等,并在脚本中被引用和操作。

Darrich的博客 1495

USB2.0协议解读

就写到这吧,其他协议层等属于软件需要了解的东西了。简单看了下,本文总结的有点乱,有两个原因吧,其一是理解的不够透彻,无法用简单明了的语言总结;其二是感觉这个协议文档章节划分的也不是很好,有点大杂烩。

qflook的博客 3673

Linux——shell脚本的基础篇(变量定义、变量种类、变量操作)

一、变量的定义 变量即在程序运行过程中它的值是允许改变的量 变量是用一串固定的字符来表示不固定的值的一种方法 变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息 在 shell 中变量是不能永久保存在系统中的,必须在文件中声明 二、变量名称的规范 eg:your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和...

Chen的博客 6万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

shell脚本变量详解

很多人可能会说,可以变化的量就是变量。但是发现很多汉语意思很强大,你看的懂的字,却不一定可以理解它的意思。这里你可以理解为 a = 1,同时还可以 a =2、a = 3 ,不同的值都可以复制给同一个 变量 a。在Shell脚本中,变量是存储数据的容器,用户可以根据需要定义自己的变量。自定义变量允许开发者在脚本中存储和操作数据,使脚本更加灵活和可重用。直接使用 “变量名=值格式” ,等号两侧不能有空格语法:variable_name=value。

sy281535604的博客 1335

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

shell脚本中的变量

还是同样的,讲一个东西之前,我们要先知道,什么是变量呢?其实和数学中的变量x差不多,只不过这个变量不只是x,可以是任何数字字母组成(特殊字符和空格除外),然后呢这个变量也不是像数学里那样有什么定义域是随机的,它的值是我们主动赋予的。如果这么说不理解的话,我们举个例子。如果,x=1,那我输出x的话,会话框里会显示什么内容?很明显,会显示1啊。那么,再稍微来个复杂那么一丢丢的例子定义一个变量 beijing=capital然后我们输出 beijing 会显示什么?会显示 captial ,如图。

qq_59677536的博客 1394

IEM模型,地表粗糙度模拟

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

SHELL脚本中的变量与运算

在执行命令时如果想让指定命令优先执行可以使用 $(cmd) 或``程序中的所有数在计算机内存中都是以二进制的形式储存的 位运算就是直接对整数在内存中的二进制位进行操作。

weixin_59406459的博客 1029

Shell脚本-变量

存储变量值不是重要目的;调用变量值才是最终目的注意“变量名”与赋值号“=”中间没有空格# 定义变量name值为”Hi!name="Hi!# 使用echo打印出变量name值echo $name这是父shell和子shell的问题Shell脚本中的参数替换是一种强大的特性,**它允许你动态地修改变量的值,或者在变量未设置时提供一个默认值。**参数替换使用大括号{}和冒号这里的parameter是你想要替换的变量名,而word是当变量parameter未设置或为空时提供的默认值。如果parameter。

sq2048935747@163.com的博客 1253

【Shell脚本】Shell编程规范与变量

天生我材必有用,千金散尽还复来

F12138X的博客 1128

shell脚本中的变量及变量传参详解

shell脚本中的变量及变量传参 1、变量的定义 变量本质上就是一片内存区域的地址即寻址符号的别名,当我们运行shell脚本时命令无法操作一直变化的目标,所以需要引入变量来解决此问题,即用一串固定的字符来表示不固定的目标。 2、shell脚本中变量的定义方法 在定义变量时,变量名称中可包含的字符有字母、下划线_和数字,变量名称不能以数字开头,一般在定义变量时我们建议变量名称短全用大写字符 变量名称长用_区分子类 WESTOS Westos_Linux westoS_Linux 环境级别 export a=

weixin_44310047的博客 7523

shell脚本的创建和执行及变量的使用

只包含字母(大小写敏感)、数字和下划线 _。不能以数字开头。避免使用 Shell 关键字。使用大写字母表示常量(习惯上)。避免使用特殊符号和空格。赋值:your_name="cyber security" # 给变量赋值,无 $ 符号打印输出变量:echo $your_name # 打印输出变量,带 $ 符号。

Mssqj的博客 1391

Shell脚本②变量

变量是计算机语言中能储存计算结果或能表示值的抽象概念。保存将来会变化的数据,即使数据变化,直接调用变量即可。Shell 变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化。通过使用变量,Shell 程序能够提供更加灵活的功能,适应性更强。默认情况下,新定义的变量只在当前的shell环境中有效,因此称为局部变量,当进入子程序或新的shell环境中,局部变量将无法再起作用。

Kiryu7的博客 1152

Shell脚本基本编辑规范及变量

Shell脚本基本编辑规范及变量shellshell的概念shell的作用shell脚本的应用场景linux中有哪些shell?编写shell脚本shell脚本的构成shell脚本的编写shell脚本的执行管道操作和重定向管道操作 |重定向变量变量的作用变量的类型定义一个新的变量赋值时使用引导从键盘输入内容为变量赋值变量作用范围整数变量的运算特殊的shell变量环境变量只读变量位置变量预定义变量浮点运算 shell shell的概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限 可结合各种s

weixin_55609829的博客 1162

变量在shell脚本间的传递

前几篇文章中已经介绍过局部变量和环境变量的含义,接下来我们来拓展下,看看变量怎样实现在shell脚本 中的传递shell脚本其实是用当前shell的子shell去执行的,所以在shell脚本中定义的普通变量只适用于当前 shell的子shell环境,也就是说在当前shell环境中不适用,也不适用于这个shell脚本的子shell。 在shell脚本中定义的环境变量可以传承给它的子shell,但是也

梦断代码的梦中 1万+

shell脚本概念构成及脚本变量详解

本文是shell脚本的入门基础详解,详细阐释了shell的概念、如何定义变量、调用变量等,以及变量的类型及其用法

十七拾的博客 1814
上一篇: shell脚本基础
下一篇: shell脚本之条件语句
梅比乌斯N
博客等级 码龄4年 288粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值