是否可以阻止shell命令与用户进行交互?
例如,当我尝试解压缩文件并且目标目录有大小限制时,我得到了y / n提示符。
unzip my_file.zip -d /var/tmp/my_dir
write error (disk full?). Continue? (y/n)
是否可以通过将所有提示发送到/ dev / nul?
立即终止shell命令答案 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
,因此我无法提供示例脚本。或者您可以看看是否有办法阻止您的程序要求输入密码。