前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >set命令详解

set命令详解

作者头像
Amadeus
发布2022-10-25 17:06:30
9620
发布2022-10-25 17:06:30
举报
文章被收录于专栏:linux技术

Bash有一个内置的set命令,可以用来查看、设置、取消shell选项

set设置的选项无法被继承,仅对当前的bash环境有效,bash命令也可以直接使用set的单字符选项来开启一个自定义参数的子bash环境,比如执行的脚本

  • 查看: echo - 和 set -o 和 echo {SHELLOPTS}
  • 设置: set -abefhkmnptuvxBCHP 和 set -o options-name
  • 取消: set +abefhkmnptuvxBCHP 和 set +o options-name

set -set +设置单字符选项,使用echo $-查看当前shell开启的单字符选项

set -o set +o 设置多字符选项,使用set -o查看当前shell所有的多字符选项的状态(开启或关闭)

使用echo ${SHELLOPTS}查看当前shell开启的长格式选项

所有的短格式选项都可以找到对应的长格式选项,长格式选项多了emacs、history、ignoreeof、nolog、pipefail、posix、vi。详见set命令的man手册

例如 set -Bset -o braceexpand 是等效的,注意这里的设置和取消有点反常识:设置用 -,关闭反而是用 +

代码语言:javascript
复制
[root@lvbibir ~]# echo $-
himBH

# set + 方式去除B选项,相应的 set -o 中的 braceexpand 选项也关闭了
[root@lvbibir ~]# set +B
[root@lvbibir ~]# echo $-
himH
[root@lvbibir ~]# set -o | grep braceexpand
braceexpand     off

# set -o 开启 braceexpand 选项,相应的 echo $- 中的 B 选项也开启了
[root@lvbibir ~]# set -o braceexpand
[root@lvbibir ~]# echo $-
himBH
[root@lvbibir ~]# set -o | grep braceexpand
braceexpand     on
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档