我有一台 Mac。我想使用 CentOS 附带的GNU script
,因为它比BSD Mac 版本功能更全面。具体来说,man script
在 CentOS 盒子上给出:
-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
如果您的目标是欺骗命令认为 stdout 是 TTY,则可以
unbuffer
改用。它是expect
酿造配方的一部分。例子:
我知道你问过脚本,这很可能是题外话。但是,如果您正在录制一些内容以便稍后通过计时播放,这可能对您有用。
因为我主要使用脚本来记录时间发生的事情,所以我可以回放它,几乎从不只是一个命令列表。我转而使用 asciinema ,它可以通过 brew 安装。它具有轻松播放减少空闲时间、整体速度调整以及在浏览器和 shell 中工作的方法。