为子shell设置变量值的两种方法

Linux中的子shell是什么,怎么理解? 文章目录前言Linux中的子shell是什么,怎么理解?01 子shell概念02 子shell 类型03 如何测试是否产生子shell04 什么时候不产生子shell05 什么时候产生子shell05::01 管道命令05::02 执行shell脚本05::03 命令替换($())05::04 使用()组合05::05 放入后台运行的任务05::06 进程替换 前言   如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的 阅读详情

为子shell设置变量值有两种方法:

一种很常见的方法是将变量export成环境变量,这样该变量就会被带到子shell中去了

echo 'echo x=$x' > /tmp/echox
chmod +x /tmp/echox
x=Hi
echo "x不是环境变量的情况下"
/tmp/echox
echo "x是环境变量的情况下"
export x
/tmp/echox

x不是环境变量的情况下
x=
x是环境变量的情况下
x=Hi

还有一种不太常见的方法是在一个shell脚本执行的命令行前直接赋值

echo 'echo x=$x' > /tmp/echox
chmod +x /tmp/echox
x=Hi /tmp/echox

x=Hi

第二种方法的语法乍看起来有点怪,不过却可以使我们在同一个文件中使用两种不同的机制来改变变量的值.

PATH=/usr/bin:/usr/sbin:/bin:/sbin
echo 'PATH=$PATH:/usr/games $*' >/tmp/games 
chmod +x /tmp/games

echo 你可以不改变PATH变量的值,直接用game脚本来运行一个游戏
/tmp/games fortune
echo PATH的值为:$PATH

echo 你也可以用 =. game= 来永久性地PATH变量的值,然后就可以运行游戏了
. /tmp/games
echo PATH的值为:$PATH
fortune

你可以不改变PATH变量的值,直接用game脚本来运行一个游戏
Knucklehead:  "Knock, knock"
Pee Wee:  "Who's there?"
Knucklehead:  "Little ol' lady."
Pee Wee:  "Liddle ol' lady who?"
Knucklehead:  "I didn't know you could yodel"
PATH的值为:/usr/bin:/usr/sbin:/bin:/sbin
你也可以用 =. game= 来永久性地PATH变量的值,然后就可以运行游戏了
PATH的值为:/usr/bin:/usr/sbin:/bin:/sbin:/usr/games
Hain't we got all the fools in town on our side?  And hain't that a big
enough majority in any town?
    -- Mark Twain, "Huckleberry Finn"
从SPI到JTAG:玩转FT2232H的MPSSE多协议切换指南(附配置代码) 本文详细介绍了如何利用FT2232H芯片的MPSSE技术实现SPI与JTAG协议的无缝切换,提供配置代码和调试技巧。通过解析MPSSE引擎架构和硬件特性,帮助开发者灵活应对多种串行协议需求,提升嵌入式开发效率。特别适合FPGA调试和物联网设备开发场景。 阅读详情

相关推荐

从原理图到代码:深入解析SX1278 LoRa模块与STM32的SPI通信驱动(附完整工程)

本文深入解析了SX1278 LoRa模块与STM32的SPI通信驱动实现,从硬件原理图到完整工程代码,详细介绍了LoRa技术的通信原理、寄存器配置、SPI接口设计及低功耗优化策略。适合物联网开发者和嵌入式工程师提升远距离无线通信能力,附完整工程代码助力快速开发。

weixin_42715608的博客 425

Shell与子Shell中环境变量传递问题

在shell编程中为了程序尽可能模块化与简洁,除了可以用函数的方式,另一种常用方法就是将不同的功能单独写在不同的脚本文件中。在父脚本调用子脚本的过程中,往往会涉及将父脚本中的变量传入子脚本中,或者将子脚本的变量传递到父脚本中,这里就会经常出现一些令人困惑的问题。要么父脚本的变量传递不进去子脚本,要么子脚本中的变量父脚本也获取不到。这里对父脚本调用子脚本,及其变量传递问题做一些总结。 父脚本与子脚本示例代码如下,在父子脚本中分别export一个变量。然后在父脚本中分别尝试三种不同的调用方式,在子脚本中获取父

5573

AI 编程新范式:一文彻底搞懂 LLM、Agent、MCP、Skill 是怎么协作的

本文用通俗易懂的方式解析了AI编程新架构的核心概念。通过"三国演义"类比,文章将复杂的技术架构拆解为:Agent(军师/大脑)负责思考和决策,Skill(招式/手脚)执行具体操作,MCP(令箭/协议)作为通信标准,MCP Server(将军/身体)承载多个Skill。这套分工架构使AI从单纯聊天进化成能完成实际编程任务的全能助手,实现了关注点分离——Agent专注智能提升,Skill专注功能实现,MCP确保稳定连接。这正是Cursor、Claude等新一代AI开发工具采用的核心架构,标志

猫老板的豆 3083

Shell基础编程--Shell变量设置

1、变量 变量是shell传递数据的一种方式,当shell脚本需要保存一些信息时,如一个文件名或一个数字,就可以把它存放在一个变量中。 2、变量设置规则 变量名称可以由字母,数字和下划线组成,但是不能以数字开头。 环境变量名建议大写,便于区分。 变量用等号连接值,等号左右两侧不能有空格 3、变量的分类 (1)局部变量:局部变量可以在脚本或命令行中定义,仅在当前shell中有效,其他shell程序不能访问局部变量。 (2)环境变量:环境变量会在当前Shell和这个Shell的所有...

m0_57202083的博客 3896

Kali使用Metasploit内、外网渗透windows系统

Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。 一、(内网渗透)内网英文缩写WAN;内网又称局域网 局域网的覆盖范围一般是方圆几千米之内,其具备的安装便捷、成本节约、扩展方便等特点使其在各类办公室内运用广泛。局域网可以实现文件管理、应用软件共享、打印机共享等功能,在使用过程当中,通过维护局域网网...

QQ670663的博客 2万+

DIY电磁炉核心驱动方案:IR2153PBF自振荡半桥芯片实战指南(附电路图)

本文详细介绍了IR2153PBF自振荡半桥驱动芯片在DIY电磁炉核心驱动方案中的实战应用。该芯片集成了振荡器与600V高压驱动能力,仅需少量外围元件即可生成互补带死区的PWM信号,极大简化了半桥逆变电路设计。文章深入解析了其工作原理、关键参数,并提供了完整的电路设计、PCB布局指南及调试步骤,帮助电子爱好者构建稳定高效的感应加热驱动核心。

beer8的博客 585

Shell 自定义变量及赋值

Bash中的变量操作相对比较简单,不像其他高级编程语言(如C/C++、Java等)那么复杂。在定义一个新的变量时,一般不需要提前进行声明,而是直接指定变量名称并赋给初始值(内容)即可格式:变量名=变量值变量名:临时存放数据的地方变量值:临时的可变化的数据等号两边没有空格。变量名称需以字母或下划线开头,名称中不要包含特殊字符(如+、-、*、/、.、?、%、&、#等);格式:unset 变量名可以使用 Bash 的内置命令 read 来给变量赋值用来提示用户输入信息,从而实现简单的交互过程。

lwforever_lw的博客 1484

用 CL_ABAP_PARALLEL 把批量处理跑进并行对话进程:资源配额、超时治理与可复制的落地模板

文章摘要: CL_ABAP_PARALLEL是SAP推荐的并行处理工具,适用于时间窗口受限的批量任务处理。它基于aRFC/pRFC机制,通过对话进程实现并行,能将小时级任务压缩到分钟级。使用时需注意版本兼容性(可能需要Note 2791374)、资源限制(会话数、进程数)和任务切片策略。提供两种实现方式:继承式(重定义do方法)和接口式(实现IF_ABAP_PARALLEL)。关键参数包括并发控制(p_percentage)、超时设置(p_timeout)和调试开关(p_debug)。最佳实践建议按业务维度

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

Shell(4)变量和赋值

shell的变量是用来临时保存数据的,并且该数据时可以变化的,任何一个语言都离不开变量,如果某个内容需要多次使用并且会重复出现,这样就可以使用变量了,如果需要修改直接修改变量就可以了。常见 Shell 变量的类型包括自定义变量、环境变量、只读变量、位置变量、预定义变量。Bash中的变量操作相对比较简单,不像其他高级编程语言(如C/C++、Java等)那么复杂。在定义一个新的变量时,一般不需要提前进行声明,而是直接指定变量名称并赋给初始值(内容)即可。格式:变量名(临时存放数据的地方)=变量值(临时的可变化的

tu464932199的博客 7726

(考研湖科大教书匠计算机网络)第四章网络层-第三节3、4:划分子网的IPv4地址和无分类IP地址

子网掩码: 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号子网掩码使用连续的比特1来对应网络号和子网号子网掩码使用连续的比特0来对应主机号将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址如下图。

快乐江湖的博客 1348

kylinos-SP3的软件包降级到V10-SP1中的版本

如果想再次回退到原来版本,将repo改为原来的SP3版本,然后执行yum history 查看ID号,执行yum history rollback ID就可以恢复了。此时我们发现已安装的版本是1.32-2.ky10,而sp1网络源里的版本是1.30-11.ky10,我们将降级安装网络源中的低版本软件包。近期有个客户想要把kylinos-V10-sp3的软件包降级到kylinos-V10-SP1的版本。3、以tar包为例,查看已安装版本及网络源中其他版本。1、查看系统版本,确认是V10-SP3。

太极淘的博客 1103

shell变量的五种赋值方式

shell

qq_40855100的博客 2万+

外设测试 - ATAES132A 加解密芯片测试

原理 使用芯片官方提供的读写操作库,进行先写后读并校验,确认数据一致。 示例代码 int main(void) { uint8_t ret; aes132p_enable_interface(); ret = write_memory_test(); if (ret != AES132_FUNCTION_RETCODE_SUCCESS) { aes132p_disable_interface(); printf

一个软件工程师的技术笔记 859

父 shell,子 shell ,export 与 变量传递

当我们在一个 shell 里运行一个脚本程序时,该 shell 就会 fork 出一个新进程,从而启动了另一个命令解释器(由脚本中第一行的 #!/bin/xxx 指定,如 bash shell)来解释运行我们这个脚本。也就是说,这个新进程是一个子 shell,而之前的 shell 是个父 shell 。 在我们所运行的脚本里,我们还可以启动新的子 shell 进程,这些子 shell 进程使

梦断代码的梦中 2万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

shell学习系列之父shell、子shell、脚本执行的几种方式

参考文章: 1)https://blog.youkuaiyun.com/NOStandby/article/details/82914930?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.none

daisy2001daisy的博客 2633

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...

shell 之 read命令 读取变量值

1. read命令键盘读取变量的值 1.1 简介   从就键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。   该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。   在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 1.2 read常用方法及参数 参数 意义/作用 -s 隐藏用户键入的值 -p 打印提示信息来...

qq_31851107的博客 8325

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Bash shell 中,三种子 shell 实践

Bash shell 中,三种子 shell 实践 一 背景 让我们先来看一下下面这个简单的例子: #!/bin/bash #=============================================================================== # FILE: process_test.sh # USAGE: . ${YOU...

晨曦蜗牛 906

shell for循环、循环变量值付给其他shell脚本

本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数。

July_whj 2万+

Shell 学习(三、vi变量和数值运算,父shell和子shell)

Shell脚本的变量不需要声明的 对变量赋值有两种方式, 直接用“=” 或者用键盘输入值 #!/bin/bash name1="Jack" echo $name1 $name1abc当后面有其他字符 ,需要 echo ${name1}abc 键盘输入值 #!/bin/bash echo "请输入你的名字:" read name1 echo $name1 输

厚Coming的专栏 999

Linux中父shell 与 子shell :subshell 和 child shell

通常,子shell是一个全新的环境,不共享父shell中的变量,变量智能通过export方式实现共享。中的变量是可以从父shell中继承的,只是不能改变父shell中的变量值。

Code_LT的博客 1972

python自带的shell是什么-python中执行shell的两种方法总结

一、使用python内置commands模块执行shellcommands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态;该命令目前已经废弃,被subprocess所替代;# coding=utf-8'''Created on 2013年11月22日@author: crazyant.net'''import command...

weixin_37988176的博客 382

父子shell

child shell 是一个全新的 shell 实例,而 subshell 是在当前 shell 环境中创建的一个临时环境。

2301_79937517的博客 1001

13 子Shell与进程处理

13.1  子Shell Shell本身也是一个程序,也可以启动自己的子进程,这些子进程称为子Shell。作为初学者,必须搞清楚子Shell与其父Shell的区别与联系以及Shell命令与子Shell的关系。本节将对子Shell的基础知识进行介绍。 13.1.1  什么是子Shell 所谓子Shell,实际上是父Shell的一个子进程。子Shell本身也可以创建自己的子进程,从而成为其子

halazi100 907

bash:子shell(subshell)介绍和使用

继承父 shell 的所有环境变量对变量、目录等的修改只在子 shell 内有效执行完毕后所有更改都会丢失。

weixin_42849849的博客 404

python 执行shell_python中执行shell的两种方法总结

一、使用python内置commands模块执行shellcommands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态;该命令目前已经废弃,被subprocess所替代;# coding=utf-8'''Created on 2013年11月22日@author: crazyant.net'''import command...

weixin_39974223的博客 139

awk使用shell变量,shell获取awk中的变量值

深度学习代码专栏     攒课--我的学习我做主     开启你的知识管理,知识库个人图谱上线     awk使用shell变量,shell获取awk中的变量值 2013-07-19 14:59 1904人阅读 评论(0) 收藏 举报 http://blog.youkuaiyun.com/czh52911/article/details/9380997

mmbbz的专栏 6849
上一篇: 使用notify-send发送桌面通知
下一篇: tramp的一般用法
darksun9972
博客等级 码龄19年 42粉丝 399原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值