文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. set命令介绍

set命令主要用来设置shell,在编写shell脚本时,使用set命令能设置shell的执行方式,根据需求不同,采用的参数设置也不同。set命令也用来显示系统中已存在的shell变量以及设置新的shell变量。

2. set命令的常用参数及作用

  • set

不带参数的set命令用来显示环境变量。

root@3500f62fe5ae:/workspace# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="3" [2]="48" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.3.48(1)-release'
COLUMNS=236
CUDA_HOME=/usr/local/cuda
CUDA_PKG_VERSION=10-0=10.0.130-1
CUDA_VERSION=10.0.130
CUDNN_VERSION=7.6.0.64
...
  • set -e

-e参数表示只要shell脚本中发生错误,即命令返回值不等于0,则停止执行并退出shell。set -e在shell脚本中经常使用。默认情况下,shell脚本碰到错误会报错,但会继续执行后面的命令。

test.sh脚本内容如下:

#!/usr/bin/env bash
set -ehello
echo "Hello set"

执行结果如下:

root@3500f62fe5ae:/workspace# sh test.sh
test.sh: 4: test.sh: hello: not found

注:set +e表示关闭-e选项,set -e表示重新打开-e选项。

  • set -u

-u参数表示shell脚本执行时如果遇到不存在的变量会报错并停止执行。默认不加-u参数的情况下,shell脚本遇到不存在的变量不会报错,会继续执行。

test.sh脚本内容如下:

#!/usr/bin/env bash
echo $testset -u
echo $hello

执行结果如下:

root@3500f62fe5ae:/workspace# sh test.shtest.sh: 5: test.sh: hello: parameter not set

参考资料

  1. http://www.ruanyifeng.com/blog/2017/11/bash-set.html
  2. http://www.runoob.com/linux/linux-comm-set.html
  3. http://man.linuxde.net/set

Linux的set命令相关推荐

  1. linux下find命令的使用和总结

    背景:find命令十分的好用,特别是在查找文件的时候,这个时候需要和文件通配符一起使用. 1 前言 我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样&quo ...

  2. linux 判断某个命令是否安装

    linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' ...

  3. linux下比较文件并输出,Linux使用diff命令比较文件找出文件之间相同的部分

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  4. Linux的watch命令--实时监测命令的运行结果

    watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.直接在 watch 后面接你想运行的 ...

  5. linux的strace命令

    linux的strace命令 strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用. strace 显示这些调用的参数并返回符号形式的值.strace 从内核接收信息,而且不 ...

  6. Linux下addr2line命令用法

    Linux下addr2line命令用于将程序指令地址转换为所对应的函数名.以及函数所在的源文件名和行号.当含有调试信息(-g)的执行程序出现crash时(core dumped),可使用addr2li ...

  7. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息

    java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...

  8. linux命令注入,Linux kernel本地命令注入漏洞

    Linux kernel本地命令注入漏洞 2005-10-19 eNet&Ciweek Linux kernel 2.2.6 Linux kernel 2.2.5 Linux kernel 2 ...

  9. linxu passwd 给linux用户设置密码 命令

    [root@localhost ~]# passwd # 修改 root 用户的密码 passwd 给linux用户设置密码 命令 passwd www 直接passwd是当前用户设置密码 非交互式修 ...

  10. Linux之链接命令

    Linux之链接命令 1. 链接命令的介绍 链接命令是创建链接文件,链接文件分为: 软链接 硬链接 命令 说明 ln -s 创建软链接 ln 创建硬链接 2. 软链接 类似于Windows下的快捷方式 ...

最新文章

  1. APP和网站应该选择云主机还是服务器呢?
  2. 场效应与三极管 电路标识符_看懂这6个提示,轻松搞定恒流源电源电路设计!...
  3. 主定理(master theorem)学习小记
  4. java integer引用传递_在java中String,对象,Integer(包装类型的)关于引用传递还是值传递...
  5. ping 计算机名 ipv4,09. 查看本地链路地址(fe80);ping主机名称时IP
  6. Android布局Include的好处,Android布局之include文件的使用中的疑难杂症
  7. OpenJudge计算概论-最长单词2
  8. Apache Tomcat目录下各个文件夹的作用
  9. springboot security 权限不足_springBoot整合springSecurity(零一)
  10. python历史 用量 预测_用python做时间序列预测七:时间序列复杂度量化
  11. BP神经网络的数学原理及其算法实现
  12. iOS: 详细的正则表达式
  13. 关于编程开发的最小系统学习法
  14. jquery下载教程,Juery3.0框架使用案例以及基础语法;
  15. Linux环境变量PATH
  16. 用html和css制作钟表,使用HTML5和CSS3制作简单的钟表
  17. 虚拟机登录MySQL
  18. win7 锁定后硬盘灯常亮
  19. 第二章 数据通信基础
  20. win7系统清除卸载软件后残留的图标技巧--win10专业版

热门文章

  1. oms之_____基于element-ui封装容器组件Portlet 及其运用
  2. 什么是Java内存模型?为什么会引发线程安全问题?
  3. IOS 普通推送和静默推送
  4. 续 Matlab创建有价值历史纪录(完整版)
  5. Linux定时重启服务脚本
  6. php网页制作中搜索框的代码,在网页里嵌入百度搜索框功能
  7. RecyclerView拖拽卡顿
  8. 名画04 阎立本《孔子弟子像》
  9. spark之交集并集差集拉链
  10. RPG游戏(JAVA)