使用 -- 标志设置命令

使用 -- 标志设置命令

我有一个文件(称为文本),其中包含两个字符串字段(用空格分隔),如下所示:

1.2.3  version1

当我如下使用 set 命令时,第一个字段位于 $1 中,第二个字段位于 $2 中。有人能解释一下这个命令的作用吗?特别是 < 做什么?这是输入重定向吗?

set -- $(<text)

答案1

该命令结合了两个相当特殊的技巧......

放 -

通常set用于配置 shell 选项(请参阅 shell 的手册页)。一个特殊情况是set --。这用于设置位置参数。不幸的是,我已经忘记了那是什么,但我曾经读到过一个无法通过其他方式很好解决的问题。

$(< 文件)

$(command)是命令替换:shell 收集 stdout 上的输出,并$(command)在执行命令行时替换为该输出。如果您需要文件的内容,可以这样做:$(cat file).$(< file)只是它的一个简短版本,节省了不必要的过程(cat)。

相关内容