Linux中set命令总结

set命令

功能:用来设置所使用shell的执行方式,可依照不同的需求来进行设置。

set语法

set [+ -abCdefhHklmnpPtuvx]

set参数

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曾启动的参数


set命令使用

执行脚本时,与到不存在变量,bash报错并停止

! /bin/bash

set -u          # 注释与不注释执行结果不同
#set -o nounset # 与set -u效果一样
echo $a
echo hello

运行结果之前,先输出执行的指令

#! /bin/bash

set -x          # 执行指令前,先输出指令
#set -o xtrace  # 与set -x效果一样  
echo hello

运行命令失败后,停止执行后面指令

#! /bin/bash

set -e
#set -o errexit
#hehe || { echo "hehe not exits"; exit 1;}  # 等效于set -e
#if ! hehe; then echo "hehe not exits"; exit 1; fi  # 等效于set -e
#hehe
#if [ "$?" -ne 0 ]; then echo "hehe not exits"; exit 1; fi  # 等效于set -e
hehe
echo hello


**注意:set -e不适合管道命令,管道命令需要使用如下命令实现:

#! /bin/bash

set -eo pipefail
hehe | echo hello1
echo hello2
 

参考文献 

http://www.runoob.com/linux/linux-comm-set.html 
http://www.ruanyifeng.com/blog/2017/11/bash-set.html
————————————————
版权声明:本文为CSDN博主「Dream_yz」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yzhang6_10/article/details/81612633

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值