Eu tenho um Mac. Eu gostaria de usar o GNU script
que vem com o CentOS, pois é mais completo do que a versão BSD para Mac. Especificamente, man script
em uma caixa CentOS fornece:
-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.
e a versão no meu Mac não tem essa opção. Quero ver a saída do meu comando fingindo ser um tty , e essa é a única maneira que conheço de fazer isso.
Eu preparei e instalei várias versões GNU de utilitários ( grep findutils coreutils gawk gnu-sed gnu-tar gnu-indent gnu-getopt gnutls
), e nenhuma delas parece fornecer arquivos script
.
Eu tentei pesquisar nas fórmulas do Homebrew, mas sem surpresa, muitos pacotes mencionam a palavra "script", então eu poderia facilmente ter perdido.
Editar : com base nos comentários, não tenho certeza se existe um GNU script
, mas certamente há outra versão que meu Mac não possui. script --version
retorna 2.xx no CentOS 7 e "argumento ilegal" no Mac.
Também pelos comentários, parece util-linux
provide script
, mas a versão brew não tem um script
comando que eu possa encontrar:
brew install util-linx
cd $(brew --prefix)/opt/util-linux
find . -name "script" # returns nothing
Se seu objetivo é enganar o comando para pensar que stdout é TTY, você pode usar
unbuffer
. Faz parte dasexpect
fórmulas de fermentação.Exemplo:
Eu sei que você perguntou sobre script, e isso provavelmente está fora do tópico. No entanto, se você estiver gravando algo para reproduzir mais tarde com o tempo, isso pode ser útil para você.
Como eu usei o script principalmente para gravar o que estava acontecendo com os tempos, para que eu pudesse reproduzi-lo, quase nunca apenas para uma lista de comandos. Mudei para usar o asciinema para isso, que pode ser instalado via brew. Ele tem maneiras de reproduzir facilmente reduzindo os tempos ociosos, ajustes gerais de velocidade e funciona no navegador e no shell.