O comando prefixado “Sudo” não funciona; sem sudo faz.

1

Eu suspeito que isso tenha sido respondido antes, mas eu não sei como isso é chamado, então eu não posso realmente procurar por isso.

Como isso funciona:

$ grep H=p <(udevadm info /dev/ttyUSB0)
E: ID_PATH=pci-0000:00:1d.0-usb-0:1.5.2:1.0

Mas isso não acontece? :

$ sudo grep H=p <(udevadm info /dev/ttyUSB0)
grep: /dev/fd/63: No such file or directory

Não importa o fato de que o sudo não é necessário neste caso, por favor.

    
por robut 25.01.2015 / 00:26

1 resposta

2

O shell está substituindo <(udevadm info /dev/ttyUSB0) por /dev/fd/63 (depois de duplicar a extremidade de leitura do pipe para fd 63) antes de executar o comando. No entanto, o sudo fecha todos os descritores de arquivo maiores que 2 por padrão. Você pode mudar isso usando a bandeira --close-from do sudo, mas existe uma maneira melhor:

sudo bash -c 'grep H=p <(udevadm info /dev/ttyUSB0)'

    
por 25.01.2015 / 01:42