linux:将用户提示重定向到/ dev / null

时间:2014-12-05 06:00:44

标签: linux shell

是否可以阻止shell命令与用户进行交互?

例如,当我尝试解压缩文件并且目标目录有大小限制时,我得到了y / n提示符。

unzip my_file.zip -d /var/tmp/my_dir

write error (disk full?).  Continue? (y/n)

是否可以通过将所有提示发送到/ dev / nul?

立即终止shell命令

2 个答案:

答案 0 :(得分:2)

您可以使用yes n对每个提示回答“否”:

yes n | unzip my_file.zip -d /var/tmp/my_dir

答案 1 :(得分:1)

您可以通过重定向其标准输入,使unzip/dev/null读取输入:

unzip my_file.zip -d /var/tmp/my_dir < /dev/null

另一种方法是使用cat

cat /dev/null | unzip my_file.zip -d /var/tmp/my_dir

效率稍差,因为它启动了另一个进程(cat),但它可能更容易阅读。关于以这种方式使用cat是否是一个坏主意,有endless arguments。{/ p>

如果程序要求输入密码并且输入文件重定向不会阻止它提示您,那么它会变得更加棘手。程序有时会使用/dev/tty直接打开终端,而不是依赖于标准输入和输出。在这种情况下,您可以使用expect向程序发送输入。我不知道如何使用expect,因此我无法提供示例脚本。或者您可以看看是否有办法阻止您的程序要求输入密码。