繁体   English   中英

在shell脚本中使用$ -

[英]Use of $- in shell script

什么是$ - 在Unix中的使用。 在我的系统中,输出是,

$ echo $-
himBH
$

什么是他的意思? 它代表什么。

提前致谢...

它返回当前shell的标志。 $-变量包含终端中当前活动的shell标志。 这些标志确定shell将如何为您运行。 在您的情况下,这些标志具有以下含义(请注意,所有这些都是默认值):

  • h :“hashall”的缩写(读为“hash all”),这告诉bash通过查询PATH记住它找到的命令的位置。

  • i :“交互式”的缩写,这很好,因为这是一个与我交互的shell(输入输入和返回输出)!1

  • m :“监视器”的缩写,这可以在bash中启用作业控制(例如,您可以通过bg将作业发送到后台)。

  • B :“braceexpand”的缩写(读作“大括号扩展”),这允许你在bash2中使用非常有效的大括号扩展。

  • H :“histexpand”的缩写(读作“hist [history] ​​expand”),这使您可以通过使用感叹号为其编号来重新运行历史记录中的命令3。

可以使用set命令更改这些标志。 例如 :

set +H 
echo $- 
himB

删除H标志。 鉴于-

set -H
echo $- 
himBH

恢复它。 就是这样,有点令人困惑但是+删除了一个标志,而-添加了一个标志。


更多信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM