我正在尝试使用 xargs 执行以下操作
pacman -Q | grep xf86-video | awk '{print $1}' | xargs pacman -R删除我机器上的所有 xf86-video-* 驱动程序。为了使问题更清楚,这里是输出pacman -Q | grep xf86-video | awk '{print $1}':
xf86-video-ark
xf86-video-ati
xf86-video-dummy
xf86-video-fbdev
xf86-video-glint
xf86-video-i128
xf86-video-intel
xf86-video-mach64
xf86-video-neomagic
xf86-video-nouveau
....
Run Code Online (Sandbox Code Playgroud)
当我将结果重定向到 时xargs,输出如下所示:

关键是,xargs即将执行的命令需要用户做一些额外的输入(如您所见,它需要是/否),但会xargs 自动添加一个未知符号#,然后退出,这导致我的目的无法实现。
为什么xargs会这样做,或者,我可以做什么来使用xargs带有提示的命令?
改变简单的c代码:
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr;
printf("%d, %d\n", *ptr, *(++ptr));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用gcc 4.8.2编译,结果:
2, 2
Run Code Online (Sandbox Code Playgroud)
用clang 3.4编译,结果:
1, 2
Run Code Online (Sandbox Code Playgroud)
为什么会这样?