BASH shell set命令详解

pipefail 选项:Bash 脚本错误处理的隐形守护者 本文深入解析Bash脚本中`set -o pipefail`选项的核心作用与实战价值。作为Bash管道命令错误处理的隐形守护者,pipefail能有效防止脚本“静默失败”,确保管道中任一命令失败即令整个管道失败,从而提升自动化脚本的健壮性与可靠性。文章结合真实故障案例,详解其原理、应用场景及与`set -e`等选项的协同最佳实践。 阅读详情
  使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.
在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,
不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是
返回ture.
当BASH shell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数
被处理后,其他的参数被赋值到位置参数中($1,$2,...,$n)

set [--abefhkmnptuvxldCHP] [-o option name] [arguments ...]


源码:


选项 说明
-a 自动向已经修改的变量或为导出后序命令的变量作出标志
-b 不是在原提示符之前,而是立即引发终止后台任务的状态表表
-e 如果命令带非零值返回,立即退出
-f 禁止带扩展名的路径
-h 定义函数时,定位和存储函数命令,当函数被执行时,通常查询
函数命令
-k 所有的关键词参数,而不只是那些命令名前的关键词参数,被放
在环境命令中
-m 监视器模式,启动任务控制.此选项默认支持系统shell交互.后
台进程以单独的进程组运行,在每次完成任务时显示包含退出的
状态行
-n 读取命令但不执行命令.通常监查shell脚本的句法错误.交互
shell被忽略

-o option-name 选项名可以是下列之一:
选项 说明
allexport 同-a选项
braceexpand shell执行花括号扩展,在默认情况下起作用
emacs 使用emacs风格命令行编辑接口.除非shell以-noline-editing
选项启动,否则当shell交互时,通过默认启动该选项
errexit 同-e选项
histexpand 同-H选项
ignoreeof 其结果是好像shell命令IGNOREEOF=10被执行
interactive 允许单词前带#号,以使得在交互shell中忽略命令行的全部字符
-commands
monitor 同-m选项
noclobber 同-C选项
noexec 同-n选项
noglob 同-f选项
nohash 同-d选项
notify 同-b选项
nounset 同-u选项
physical 同-p选项
posix 改变BASH属性以匹配标准,默认操作不同于POSIX1003.2标准
verbose 同-v选项
vi 使用vi风格的命令行编辑器
XTRACE 同-x选项,如果没有给出选项名,显示当前选项值
-p 打开特权模式(在此模式,$ENV文件被处理,不能从环境中继承
shell函数.如果是有效用户ID而不是实用户组则自动启动.关闭
此选项将使得有效用户和组IDs设置实用户和组IDs)
-t 在读取命令并执行之后退出
-u 当执行参数括展时,把非设置变量作为错误处理(如果扩展企图
出现在非设置变量中,shell显示错误信息.如果不是交互式,则
带非凌值退出)
-v 输入行被读取时,显示shell输入行
-x 在每个简单命令被扩展之后,显示PS4扩展值,之后是要执行的命令
-l 保存和恢复绑定在命令中的名称
-d 禁止执行查找散列命令(通常,命令被保存在散列表中,一旦被找到
就不再继续查找)
-C 效果好像是执行了noclobber=shell命令
-H 使用!风格的历史替代(当shell交互时,在默认情况下,此选项有效)
-P 如果设置此参数,当执行改变目录命令cd时,不遵循符号链接,而是
使用实际的目录
-- 如果在选项后没有参数,不设置位置参数.否则,即使一些参数以a
选项开始,也要把位置参数设置为argument
- 结束选项的信号,将引发其余的参数被赋值到位置参数中(-x和-v
选项被关闭.如果没有argument,位置参数将保留未改变的参数)
一行 npm 配置背后的 Windows Shell 选择,为什么把 npm script 交给 Git Bash 执行 这篇文章解释了 npm config set script-shell 命令的作用,它用于修改 Windows 系统中 npm 执行脚本时默认使用的 shell 解释器。通过将其设置为 Git Bash 的路径,可以让 npm 在运行脚本时使用 Bash 语法解析,从而兼容 Unix 风格的命令,解决跨平台开发的脚本兼容性问题。文章详细分析了该命令对 SAP UI5、Node.js 等项目开发的影响,比较了不同 shell 的语法差异,并澄清了该配置与直接使用 Git Bash 终端的区别。 阅读详情

相关推荐

linux设置shell命令—–set

set Linux set命令用于设置shell。 set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。 语法 set 【选项】 【参数】 选项 -a:标示已修改的变量,以供输出至环境变量 -b:使被中止的后台程序立刻回报执行状态 -C:转向所产生的文件无法覆盖已存在的文件 -d:Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消 -e:若指令传回值不等于0,则立即退出shell -f:取消使用通配符 -h:自动记录函数的所在位置 -k:指令所给的参数都会被视为此指令的环境变量 -l:记录for循环的变量名称 -m:使用监视模式 常用实例 直接

shell里set命令教程

shell set 命令教程

weixin_44517278的博客 3125

【ESP32】1.编译、烧录、创建工程

本文介绍了在VSCode中搭建ESP32开发环境并烧录"Hello World"工程的过程。首先通过串口工具成功下载固件后,解决了OpenOCD报错问题。针对头文件无法识别的问题,修改了c_cpp_properties.json配置文件,调整了编译器路径和IntelliSense模式。文章还详细说明了创建新工程的步骤,包括选择芯片型号和项目模板,并验证了串口打印功能。最后提醒在项目构建时要等待完成,避免文件缺失。整个流程涵盖了环境搭建、代码烧录、调试及新项目创建等关键环节。

梁山1号 1484

Bash脚本set命令介绍

在 Bash 脚本里,set 命令是一个功能强大的内置命令,可用于设置和显示 shell 选项与位置参数。

qq_27390023的博客 586

Star CCM+ 202206 (17.04) 详细安装步骤

StarCCM+ 17.04 安装包和详细安装步骤

薛定谔的alpha狗 3万+

Creo报错代码-9?手把手教你重新生成许可证文件(基于Creo 10.0)

本文详细解析Creo报错代码-9的成因及解决方案,重点介绍如何重新生成许可证文件以应对网络环境变化导致的验证失败。通过分步指南和高级技巧,帮助用户有效管理多网络环境下的Creo许可证问题,提升工作效率。

weixin_30839881的博客 557

shell bash中设置命令set

shell 中set命令

Andy的博客 1430

【crawler笔记】R语言简单动态网页爬虫(rvest包)示例

1、爬虫目标 大家普遍认为Python的爬虫功能强大,但在解决动态加载或者登陆网站时,Python存在一定困难的,相对于一些普通爬虫,使用R语言会更方便。 以https://www.thepaper.cn/为例,爬取首页的新闻(标题、内容、时间),主要采用的是动态网页中常用的httr包。 初始学习时,参考了B站《20分钟入门基于R语言的网络爬虫_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili》的视频,但代码运行出现了报错,所以在原代码上做了修改。 2、代码分析及报错修改 library(rv

seeyouer1205的博客 3275

【Bash百宝箱】shell内建命令之set、shopt

1、set在shell中,内建(builtin)命令set,格式如下:set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...] set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]set命令用以改变bash默认行为,不指定任何选项和参数时,显示所有shell变量的名称及值,包括shell函数,但

Making Life Better. Making Others Better. 2598

绝缘检测是什么? 绝缘检测原理 绝缘检测检测的是什么?那个量?电压?电流?电阻?

绝缘电阻是电气设备和电气线路最基本的绝缘指标。对于低压电气装置的交接试验,常温下电动机、配电设备和配电线路的绝缘电阻不应低于0.5MΩ(对于运行中的设备和线路,绝缘电阻不应低于1MΩ/kV)。 绝缘电阻的正确测量方法 现代生活日新月异,人们一刻也离不开电。在用电过程中就存在着用电安全问题,在电器设备中,例如电机、电缆、家用电器等。 影响因素 环境温湿度 一般材料的绝缘电阻值随环境温湿度的升高而减小。相对而言,表面电阻(率)对环境湿度比较敏感,而体电阻(率)则对温度较为敏感。 湿度增加,表面泄漏增大,导体电导

dianqicyuyan的博客 2万+

【图像超分】论文复现:新手入门必备!Pytorch实现SRGAN!手把手详细教程!代码注释详尽!可用于训练自己的数据集!实时验证模型性能!绘制PSNR曲线图!附训练好的各放大倍数的模型权重文件!

【图像超分】论文精读:SRResNet/SRGAN【图像超分】论文复现:万字长文!Pytorch实现SRResNet代码修改无报错!踩坑全记录!适合各种深度学习新手!帮助你少走弯路!附修改后的代码和PSNR最优的模型权重文件!请配合上述论文精读文章使用,效果更佳!与原论文描述不一样的实现部分,也即可以修改的部分数据集使用:论文中是ImageNet随机选35000张图像,本文是VOC2012数据集16700张图像。数据集预处理:裁剪大小不同,论文是96×96,本文是88×88。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 6852

linux set命令举例,BASH shell set命令详解

BASH shell set命令详解发布时间:2006-01-06 09:27:34来源:红联作者:何哥使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.当BASH shell被调用...

weixin_42352981的博客 204

《FPGA接口与协议》专栏的说明与导航

《FPGA接口与协议》专栏的说明与导航(建议阅读)。

孤独的单刀 17万+

linux bash shell set 命令详解

使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后使用-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.         当BASH shell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数被处理后,其他

jesseen的专栏 3175

正弦波、方波、三角波和锯齿波信号发生器——Multisim电路仿真

调节方波信号的占空比,也就是改变输出信号的高低电平时间比例,可以设置电容不同的充放电时间来达到目的,RP2可以使得电容具有不同的充放电时间,其中二极管起到限制电流流向的作用。假设U+>U,那么输出端就达到正向饱和,电容开始充电,当电容电压大于同相输入端电压时,此时电容开始放电,由此往复,从而产生方波信号。3,正反馈支路占优势,电路开始起振并不是稳定的,振荡会不断增大,最终将导致运放饱和,输出的波形是削波失真的正弦波。通常在电路中引入负反馈,例如使用负温度系数的热敏电阻,以自动稳定增益,防止输出波形失真。

XU157303764的博客 5316

android 蓝牙通讯demo

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

BASH shell set命令详解(转)

BASH shell set命令详解(转)[@more@]使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不...

congjukun0600的博客 404

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux Bash命令关于程序调试详解

转载:http://os.51cto.com/art/201006/207230.htm 参考:《Linux shell 脚本攻略》Page22-23 Linux bash程序在程序员的使用中十分重要,尤其是和shell程序的使用中Linux bash程序的调试格外重要。在进行调试的过程中有许多小技术点需要我们注意。下面的门就来详细的学习下Linux Bash命令关于程序调试详解。 Linux ...

pengdonglin137的专栏 103

IEM模型,地表粗糙度模拟

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

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

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

shell脚本语言学习

bash set命令详解

ImposterSyntrome的博客 253

Bash&Shell的学习笔记~

1 致谢 感谢菜鸟教程的帮助! 2 前言 今天在调试MMDetection的检测框架,见到了这样的配置脚本, 其中这里有一个“$COCO_ROOT”,我不太明白这是什么, 后来百度了一下,才知道这是一个Bash语言中的变量的引用方式~ 2.1 Bash跟shell的关系 Shell是一个供用户操作的Linux程序,(这里我们其实使用的是Ubuntu系统),同时它也是一种程序设计语言,可以用来编写代码来完成更加复杂的操作过程; ...

墨门 1036

Bash脚本调试必备:pipefail选项的5个实际应用场景(附代码示例)

本文深入解析Bash脚本中pipefail选项的5个关键应用场景,包括日志分析、数据处理流水线、持续集成构建控制和安全审计脚本。通过实际代码示例演示如何利用pipefail提升脚本健壮性,避免静默失败,确保自动化运维的可靠性。特别适合系统管理员和DevOps工程师优化Bash脚本调试实践。

p1q2r的博客 646
上一篇: Vmware下成功编译linux内核2.6
下一篇: 黄金分割律在股市中的应用
TrueLie
博客等级 码龄24年 85粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值