linux 关于$-的解释(帖子搜索合集)

在学习Linux的时候,今天遇到了$-,什么意思呢?网上搜索了一些帖子:

帖子1:

linux命令 $- 是什么意思

$- 是什么意思?有什么用?可以判断什么交互式shell?

$-记录着当前设置的shell选项,himBH是默认值,5个字母分别有各自含义。解释如下:

  1. h:hashall,打开这个选项后,Shell 会将命令所在的路径记录下来,避免每次都要查询。举例:当h选项开启时,如果将某个自定义命令从/usr/bin/目录下移动到/usr/local/bin/,再运行,会提示无此命令。而当通过set +h将h选项关闭后,上述情况就不会出现。

  2. i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell。所谓的交互式shell,就是输入命令后,shell解释执行,然后返回一个结果。在脚本中,i选项是关闭的。

  3. m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继续,后台或者前台执行等。

  4. B:braceexpand,大括号扩展。举例如下:

    lenovo@lenovo-DK ~
    ls A_File lenovo@lenovo-DK ~ cp A_File{,.back_up}
    lenovo@lenovo-DK ~
    $ ls
    A_File A_File.back_up

如果关闭B选项,那么shell就不会将大括号扩展。

  1. H:history,Shell 会把我们执行的命令记录下来,可以通过 history 命令查看,每一行是序号 + 执行的命令,在 shell 退出时,会将这些信息保存到~/.bash_history 文件中。如果H选项打开,就可以展开历史列表中的命令,可以通过!感叹号来完成,例如"!!"返回上最近的一个历史命令,"!n"返回第 n 个历史命令,等等。

帖子2:

-是shell的一个特殊变量(其他还有? @ #等),$-表示当前shell中使用set命令设置的参数

你可以通过echo $-来查看当前shell的参数,我这里输出了:himBHs

要了解每个的具体含义,可以输入set --help来查看。

注意:set -h不行,一般程序-h和--help是一个意思,但是这个set不是

帖子3:

`$-` prints The current set of options in your current shell.

`himBH` means following options are enabled:

  • `H` - `histexpand`

  • `m` - `monitor`

  • `h` - `hashall`

  • `B` - `braceexpand`

  • `i` - `interactive`

相关推荐
写代码的学渣23 分钟前
ubuntu 22.04 新装的系统 xshell 连不上
linux·运维·ubuntu
2501_9418059336 分钟前
深入解析现代多语言后端架构设计:Python、Java、C++与Go在高性能服务中的实践
运维
F***E23941 分钟前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh
序属秋秋秋44 分钟前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
云边有个稻草人1 小时前
手机也能控 Linux?Cpolar+JuiceSSH 搞定内网远程
运维·服务器·cpolar
Altair12311 小时前
nginx的https的搭建
运维·网络·nginx·云计算
云计算练习生2 小时前
linux shell编程实战 10 Git工具详解与运维场景实战
linux·运维·git
Umi·2 小时前
iptables的源地址伪装
运维·服务器·网络
晨非辰2 小时前
C++ 波澜壮阔 40 年:从基础I/O到函数重载与引用的完整构建
运维·c++·人工智能·后端·python·深度学习·c++40周年
阿巴~阿巴~4 小时前
自定义协议设计与实践:从协议必要性到JSON流式处理
服务器·网络·网络协议·json·操作系统·自定义协议