O que faz a opção --tty-only?

6

Acabei de perceber que meu administrador de sistema criou um alias global para which :

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

A% man_de% manpage diz apenas:

Stop processing options on the right if not on tty.

O que isso significa?

    
por RSFalcon7 23.04.2013 / 18:20

2 respostas

8

Configuração:

$ /usr/bin/which --show-dot a
./a
$ /usr/bin/which --show-tilde a
~/a

Se você quisesse que a versão . fosse executada interativamente, mas a versão ~ quando redirecionada, você poderia usar isso como um alias:

/usr/bin/which --show-tilde --tty-only --show-dot

Demo:

# interactive / on a tty
$ /usr/bin/which --show-tilde --tty-only --show-dot a
./a
# not interactive / redirected to a file
$ /usr/bin/which --show-tilde --tty-only --show-dot a > output
$ cat output 
~/a

Todas as opções que você especificar depois de --tty-only serão levadas em conta somente quando a saída for um tty.

    
por 23.04.2013 / 19:53
3

Isso significa que se a saída para which não se referir a um terminal, então não processe --read-alias , --show-dot e --show-tilde .

Normalmente, se a um pipe, arquivo comum, etc.

which watch | foo # not a tty
which watch > foo # not a tty
which watch       # tty
which watch >&2   # tty

As opções não são reconhecidas em, e. debian :

    
por 23.04.2013 / 19:56

Tags