set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。使用set更改shell特性时,符号”+”和”-“的作用分别是打开和关闭指定的模式。set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以变量名=值
的格式进行定义即可。
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 -e
hello
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 $test
set -u
echo $hello
执行结果如下:
root@3500f62fe5ae:/workspace# sh test.sh
test.sh: 5: test.sh: hello: parameter not set
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !