Linux set命令教程:如何优雅地设置和取消shell变量和选项(附实例详解和注意事项)

Linux set命令介绍

set命令是Linux操作系统中的内置shell命令,用于设置和取消shell变量和选项。它常用于shell脚本中,以配置环境并控制脚本的行为。

Linux set命令适用的Linux版本

set命令在所有主流的Linux发行版中都可以使用,包括但不限于Ubuntu、Fedora、Debian、Kubuntu以及CentOS 7和CentOS 8¹。

[linux@bashcommandnotfound.cn ~]$ set --help

Linux set命令的基本语法

set命令的基本语法如下:

set -options arguments

Linux set命令的常用选项或参数说明

以下是set命令的一些常用选项¹:

选项说明
-a将后续定义的变量或函数自动导出
-b当作业状态改变时立即通知
-e如果一个命令以非零状态退出,则立即退出
-f禁用文件名扩展
-h记住函数的位置,即使它们尚未定义
-k将所有参数当作变量赋值
-m启用作业控制
-n读取命令但不执行它们
-o以长格式列出选项
-p启动特权模式
-t退出shell或脚本
-u对未设置的变量和参数进行处理
-v打印shell输入行
-x打印命令和参数

Linux set命令实例详解

以下是一些set命令的使用实例:

实例1:显示所有shell变量和函数

如果不带任何选项或参数使用set命令,它将显示所有的shell变量和它们的值。

[linux@bashcommandnotfound.cn ~]$ set

实例2:设置位置参数的值

位置参数可以被定义为shell脚本或程序中的值,其值使用set命令进行赋值。

[linux@bashcommandnotfound.cn ~]$ set Ubuntu Fedora LinuxMint Debian Kubuntu
[linux@bashcommandnotfound.cn ~]$ echo $3

实例3:取消位置参数的值

双破折号--用于取消位置参数。

[linux@bashcommandnotfound.cn ~]$ set --
[linux@bashcommandnotfound.cn ~]$ echo "$*"

实例4:执行带有错误的shell脚本

如果你写了一个新的脚本并且想要测试它,但是你不确定错误在哪里,那么使用set命令,有一种方法可以执行它,直到出现错误的那一行。

[linux@bashcommandnotfound.cn ~]$ set -e
[linux@bashcommandnotfound.cn ~]$ echo 'Welcome to itslinuxfoss.com'
[linux@bashcommandnotfound.cn ~]$ cat filename
[linux@bashcommandnotfound.cn ~]$ echo 'End of script'

实例5:禁用shell选项

你可以使用+选项来禁用shell选项。

[linux@bashcommandnotfound.cn ~]$ set +o nounset

实例6:启用shell选项

你可以使用-选项来启用shell选项。

[linux@bashcommandnotfound.cn ~]$ set -o nounset

实例7:显示所有shell选项

如果你想查看所有的shell选项,你可以使用-o选项。

[linux@bashcommandnotfound.cn ~]$ set -o

实例8:在脚本中使用set命令

在shell脚本中,set命令常用于改变脚本的行为。

[linux@bashcommandnotfound.cn ~]$ echo 'Welcome to itslinuxfoss.com'
[linux@bashcommandnotfound.cn ~]$ set -e
[linux@bashcommandnotfound.cn ~]$ cat filename
[linux@bashcommandnotfound.cn ~]$ echo 'End of script'

实例9:使用set命令设置位置参数

你可以使用set命令来设置位置参数。

[linux@bashcommandnotfound.cn ~]$ set -- "arg 1" "arg 2" "arg 3"
[linux@bashcommandnotfound.cn ~]$ echo "$1"
[linux@bashcommandnotfound.cn ~]$ echo "$2"
[linux@bashcommandnotfound.cn ~]$ echo "$3"

实例10:使用set命令取消位置参数

你可以使用set命令来取消位置参数。

[linux@bashcommandnotfound.cn ~]$ set --
[linux@bashcommandnotfound.cn ~]$ echo "$1"
[linux@bashcommandnotfound.cn ~]$ echo "$2"
[linux@bashcommandnotfound.cn ~]$ echo "$3"

Linux set命令的注意事项

  • 使用set命令时,需要注意-o可以启用shell选项,而+o可以禁用shell选项。
  • 如果你看到bash: set: command not found,请按照上面的方法安装。

Linux set相关命令

以下是一些与set命令相关的命令:

  • export命令:用于设置或显示环境变量
  • unset命令:用于删除环境变量
  • env命令:用于显示环境变量
  • alias命令:用于创建命令别名
  • unalias命令:用于删除已定义的别名

更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux set命令详解:如何设置和显示shell变量和函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Leetcode】238.除自身以外数组的乘积

一、题目 1、题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度内完成…

超维空间M1无人机使用说明书——21、基于opencv的人脸识别

引言:M1型号无人机不仅提供了yolo进行物体识别,也增加了基于opencv的人脸识别功能包,仅需要启动摄像头和识别节点即可 链接: 源码链接 一、一键启动摄像头和人脸识别节点 roslaunch robot_bringup bringup_face_detect.launch无报错&#…

Java解决动态口令问题

Java解决动态口令问题 01 题目 某公司门禁密码使用动态口令技术。初始密码为字符串 password,密码更新均遵循以下步骤: 设定一个正整数目标值 target将 password 前 target 个字符按原顺序移动至字符串末尾 请返回更新后的密码字符串。 示例 1&…

Django配置日志系统的最佳实践

概要 日志是跟踪应用行为、监控错误、性能分析和安全审计的重要工具。在Django框架中,合理配置日志系统可以帮助开发者有效管理项目运行过程中的关键信息。本文将详细介绍Django日志系统的最佳实践。 日志系统概述 Django使用Python的 logging 模块来实现日志系统…

掌握Lazada API接口:开启电商开发新篇章,引领业务增长潮流

一、概述 Lazada API接口是Lazada平台提供的软件开发工具包,它允许第三方开发者通过编程方式访问Lazada平台上的商品、订单、用户等数据,并执行相关操作。通过使用Lazada API接口,开发者可以快速构建与Lazada平台集成的应用程序,…

WPF 基础入门(资源字典)

资源字典 每个Resources属性存储着一个资源字典集合。如果希望在多个项目之间共享资源的话,就可以创建一个资源字典。资源字段是一个简单的XAML文档,该文档就是用于存储资源的,可以通过右键项目->添加资源字典的方式来添加一个资源字典文件…

【设计模式】一文理解记住设计模式的原则

目录——阅读所需预计5-10分钟 🎖️前言🎯单一职责原则📣1. 定义💞2. 定义很抽象,咱继续看🎉3. 举几个栗子💞4. 以上栗子出现了一个问题,单一职责的划分究竟可以分多细👉…

架构设计 识识别复杂度

文章目录 识别复杂度识别复杂度实战 架构设计的本质目的是为了解决软件系统的复杂性,所以在我们设计架构时,首先就要分析系统的复杂性。只有正确分析出了系统的复杂性,后续的架构设计方案才不会偏离方向;否则,如果对系…

【花艺电商】SpringBoot集成MyBatis-Plus、Swagger2、SpringSecurity、OAuth2等技术整合开发

目录 一、功能介绍 1. 说明 2. 功能实现 3. 技术应用 二、技术详述 1.MyBatis-Plus 主要体现 项目应用 2.SpringSecurity 应用作用 三、页面展示 1. 登入 2. 主页 3. 详情 4. 购物车 5. 订单 6. 沙箱支付 每篇一获 一、功能介绍 1. 说明 这个项目主要使用了…

文本分析之词云图的绘制

文本分析的词云图是一种可视化方式,用于展示文本中出现频率较高的词汇。词云图通常以词汇的出现频率为基础,将频率较高的词汇在图中显示为较大的字体,频率较低的词汇则以较小的字体显示。通过词云图,可以直观地了解文本的关键词和…

计算机网络试题——填空题(附答案)

在OSI模型中,第一层是____________层。 答案:物理(Physical) TCP协议是一种_____________连接的协议。 答案:面向连接(Connection-oriented) IPv6地址的位数是____________。 答案:1…

算法训练day8Leetcode344反转字符串541反转字符串II54替换数字151反转字符串单词55右旋字符串

今日学习的文章和视频链接 https://programmercarl.com/0344.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.html#%E6%80%9D%E8%B7%AF https://programmercarl.com/kama55.%E5%8F%B3%E6%97%8B%E5%AD%97%E7%AC%A6%E4%B8%B2.html#%E6%80%9D%E8%B7%AF 344 反转字符串 题目描…

基于SSM的校园线上订餐系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:vue\html 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

Linux中yum命令工作原理

yum的工作原理 解决了rpm安装时的依赖关系,底层还是rpm安装 在生产环境下,非必要,建议不要卸载软件包,尤其是不熟悉的软件包,因为在redhat 8之后卸载软件包会直接解除依赖关系(底层没有使用到的依赖包会直接被卸载),有的底层的依赖包像openssl,不止一个软件包所依赖,一旦被卸载…

OpenHarmony基于HDF简单驱动开发实例

背景 OpenHarmony-3.0-LTSqemu_small_system_demoliteos_aqemu 添加配置 device/qemu/arm_virt/liteos_a/hdf_config/device_info/device_info.hcs device_info 新增: sample_host :: host {hostName "sample_host";sample_device :: device {devic…

ASP.NET中小型超市管理系统源码

ASP.NET中小型超市管理系统源码 超市管理系统是专门为中小型超市打造的管理系统,可以方便管理时更加准确清晰的查看商品信息, 仓库出售与进货的信息,还有每一个部门员工的信息,也更加直观的体现出每一阶段的商品销售情况&#xf…

【VUE】无法加载文件 \node\vue.ps1,因为在此系统上禁止运行脚本。问题解决

问题描述 在VS Code中输入vue create -p dcloudio/uni-preset-vue uniapp-demo命令时报错 无法加载文件 D:\address\node\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Executi…

(aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器

1. 背景介绍 在先前的博客文章中,我们已经搭建了一个基于SRS的流媒体服务器。现在,我们希望通过Web接口来控制这个服务器的行为,特别是对于正在进行的 RTSP 转码任务的管理。这将使我们能够在不停止整个服务器的情况下,动态地启动…

UE5 使用动画模板创建多个动画蓝图

我们制作游戏的时候,角色会根据不同的武器表现出来不同的攻击动画,待机动画以及移动动画。如果我们在UE里面实现这个需求,是通过复制粘贴的方式修改,还是有更好的方式。 这里就需要介绍一下动画模板,我们可以将动画蓝图…

pycharm调整漂亮的颜色主题

主题样式: 一、设置主题为白色 二、pycharm 如何设置字体颜色 打开pycharm编辑器,file > settings > editor > color scheme > python > 你也可以直接用我资源中的配置好的文件