在 Mac 上安装 GNU“脚本”命令

在 Mac 上安装 GNU“脚本”命令

我有一台 Mac。我想使用CentOS 附带的GNU ,因为它比 BSD Mac 版本script功能更全面。具体来说,在 CentOS 机器上:man script

   -c, --command command
          Run the command rather than an interactive shell.  This makes it easy  for  a  script  to
          capture the output of a program that behaves differently when its stdout is not a tty.

而我的 Mac 上的版本没有这样的选项。我想假装是 tty,查看命令的输出,这是我所知道的唯一方法。

我有 brew,并安装了一堆 GNU 版本的实用程序(grep findutils coreutils gawk gnu-sed gnu-tar gnu-indent gnu-getopt gnutls),但这些似乎都没有提供script

我尝试搜索 Homebrew 公式,但不出所料,很多包都提到了“脚本”这个词,所以我很容易错过它。

编辑:根据评论,我不确定是否有GNU script,但肯定还有另一个版本,而我的 Mac 没有这个版本。script --version在 CentOS 7 上返回 2.xx,在 Mac 上返回“非法参数”。

此外,从评论来看,这听起来像是util-linux提供script,但 brew 版本没有script我能找到的命令:

brew install util-linx
cd $(brew --prefix)/opt/util-linux
find . -name "script"  # returns nothing

答案1

如果你的目标是欺骗命令,让其认为 stdout 是 TTY,你可以使用。它是brew 公式unbuffer的一部分。expect

brew install expect
unbuffer -p <COMMAND_TO_TRICK>

例子:

echo "colorme" | unbuffer -p grep --color=auto colorme | cat

答案2

我知道你问的是脚本,这很可能是题外话。但是,如果你要录制一些内容以便稍后按时间播放,这可能会对你有用。

由于我使用脚本主要是为了记录正在发生的事情,以便我可以回放它,几乎从来不会只记录命令列表。为此,我改用 asciinema,它可以通过 brew 安装。它有方法可以轻松回放,减少空闲时间,调整整体速度,并且可以在浏览器和 shell 中工作。

相关内容