Linux开发常用命令之浅谈set命令

set命令:

1. 介绍及用法

  • set命令用于设置shell,set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。
  • set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。
  • 使用set更改shell特性时,符号”+”和”-“的作用分别是打开和关闭指定的模式。

1.1. 语法

set [+-abCdefhHklmnpPtuvx]

1.2. 命令参数说明

  • -a 标示已修改的变量,以供输出至环境变量。
  • -b 使被中止的后台程序立刻回报执行状态。
  • -C 转向所产生的文件无法覆盖已存在的文件。
  • -d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。 使用-d参数可取消。‎
  • -e 若指令传回值不等于0,则立即退出shell。
  • -f 取消使用通配符。
  • -h 自动记录函数的所在位置。
  • -H Shell 可利用”!” 加的方式来执行history中记录的指令。‎
  • -k 指令所给的参数都会被视为此指令的环境变量。
  • -l 记录for循环的变量名称。
  • -m 使用监视模式。
  • -n 只读取指令,而不实际执行。
  • -p 启动优先顺序模式。
  • -P 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
  • -t 执行完随后的指令,即退出shell。
  • -u 当执行时使用到未定义过的变量,则显示错误信息,并停止脚本执行。
  • -v 显示shell所读取的输入值。
  • -x 执行指令后,会先显示该指令及所下的参数。
  • + 取消某个set曾启动的参数。

1.3 常用参数及作用

  • 不带参数的set命令用来显示环境变量
linux@ubuntu:~$ 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脚本碰到错误会报错,但会继续执行后面的命令。
注:set +e表示关闭-e选项,set -e表示重新打开-e选项。

例如,test.sh脚本内容如下:

#!/bin/bash
set -e

hello
echo "Hello set"

执行结果如下:

linux@ubuntu:~$ sudo chmod +x ./test.sh
linux@ubuntu:~$ ./test.sh
test.sh: 4: test.sh: hello: not found

2. 参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值