Не можу зрозуміти, чому
$ apt-cache policy foo
N: Unable to locate package foo
але
$ apt-cache policy foo 2>&1 | grep .
пусто.
Де в останньому дзвінку я роблю неправильне припущення?
Оригінальне завдання: мені потрібно обробити apt-cache policy
вихід, імовірно :-)
UPD :
foo
Використовуваний у моєму прикладі може бути замінений будь-яким ім'ям пакета, яке не існує у вашому apt-get
індексі.
UPD 2 :
є відповідь із вирішенням проблеми. Додаткову +50
винагороду отримає кожен, хто пояснить, чому 2>&1
рішення не працює.
strace apt-cache policy foo 2>&1
і є системний виклик, ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
я думаю, через це дзвінок 1 (stdout) має проблеми. Я маю на увазі, що це більше не написано на tty
# apt-cache policy vim 2>&1 |grep . vim: Installed: 2:7.4.712-2 Candidate: 2:7.4.712-2 Version table: *** 2:7.4.712-2 0 500 http://ftp.debian.org/debian/ sid/main amd64 Packages 100 /var/lib/dpkg/status