Obter no zsh o mesmo resultado que você obtém ao executar 'type -t' on bash?

1

Eu tenho um shell script que usa type -t , mas aparentemente ele foi originalmente escrito para bash e nesta máquina eu estou em zsh , não está funcionando.

Eu vejo documentos básicos que type -t faz:

If the -t option is used, type prints a single word which is one of ‘alias’, ‘function’, ‘builtin’, ‘file’ or ‘keyword’, if name is an alias, shell function, shell builtin, disk file, or shell reserved word, respectively. If the name is not found, then nothing is printed, and type returns a failure status.

Mas em zsh, type não aceita a opção -t e, na verdade, aliases a whence :

type [ -fpam ] name ... Same as whence -v.

e daí:

For each name, indicate how it would be interpreted if used as a command name. The '-v' flag produces a more verbose report. The '-c' flag prints the results in a csh-like format and takes precedence over '-v'. The '-f' flag causes the contents of a shell function to be displayed, which would otherwise not happen unless the '-c' flag were used. The '-p' flag does a path search for name even if it is an alias, reserved word, shell function or builtin. The '-a' flag does a search for all occurrences of name throughout the command path. With the '-m' flag, the arguments are taken as patterns (which should be quoted), and the information is displayed for each command matching one of these patterns.

Qual não incluiu o resultado desejado. Uma maneira de obter o resultado equivalente em zsh ? Alterar as cascas não é uma opção nesta máquina.

    
por yivi 19.10.2017 / 10:50

1 resposta

2

Como as saídas de whence -w em zsh e type -t no bash são algo similar (a tabela a seguir é feita a partir de testes pessoais, então eu recomendo levá-la com cuidado)

type -t    whence -w
alias      alias
function   function
builtin    builtin
file       command
keyword    reserved
?          hashed
?          none

Não parece muito difícil criar um script em zsh que imite o comportamento do tipo -t no bash. Você poderia até, por exemplo por meio de alias, substitua o type embutido em zsh com seu comando em zsh

    
por 05.11.2017 / 09:03

Tags