如何在Linux-Unix命令中自动回答Yes或No

很多时候,在Linux / Unix命令或脚本中,我们必须提供确认输入,例如Yes或No。 可以避免该手动进入位置。 在本文中,我们将讨论如何对Linux-Unix命令进行自动回答“是”或“否”,以使系统管理员的工作更加轻松。

如何在Linux-Unix命令中自动回答Yes或No

方法1:重复是或否

您可以通过在实际命令或脚本之前回显yes或no并将管道“ |”放置在管道中来使用此方法。 这两个团队之间。 让我们展示一个开发这种技术的例子。

假设您在/ tmp / AndreyEx目录中有五个文本文件,如下所示。

[[email protected] AndreyEx]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 26 11:56 1.txt
-rw-r--r--. 1 root root 0 Jun 26 11:56 2.txt
-rw-r--r--. 1 root root 0 Jun 26 11:56 3.txt
-rw-r--r--. 1 root root 0 Jun 26 11:56 4.txt
-rw-r--r--. 1 root root 0 Jun 26 11:56 5.txt
[[email protected] AndreyEx]# pwd
/tmp/AndreyEx
[[email protected] AndreyEx]#

现在,您要删除此目录中的全部或仅一个“ 1.txt”文件。 答案很简单,rm命令。 但是,此命令在继续删除文件之前将询问是或否。 如下所示:

[[email protected] AndreyEx]# rm 1.txt
rm: remove regular empty file ‘1.txt’? y

在上述方法中,我们为rm命令提供了“ y”输入。 为避免这种情况,我们将在rm命令之前添加如下所示:

[[email protected] AndreyEx]# echo y|rm 1.txt
rm: remove regular empty file ‘1.txt’? [[email protected] AndreyEx]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 26 11:59 2.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 3.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 4.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 5.txt
[[email protected] AndreyEx]#

我们对命令进行了自动响应,但是仍然存在问题。 球队 回声 不能连续回答命令的是或否。 在这种情况下,您需要使用以下方法。

方法2:命令是。

如果需要在Linux-Unix上自动对命令回答“是”或“否”,则可以使用“是”命令。

基本上,yes命令的作用是连续输出传递给它们的行,甚至单独输出yes字符串。 因此,我们可以使用此功能自动对Linux / Unix命令/脚本回答yes或no。 让我们举个例子。 像以前一样,我们有五个文件,我们希望删除所有这些文件而不回答是或否确认问题。 然后尝试以下使用命令“”。

[[email protected] AndreyEx]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 26 11:58 1.txt
-rw-r--r--. 1 root root 0 Jun 26 11:58 2.txt
-rw-r--r--. 1 root root 0 Jun 26 11:58 3.txt
-rw-r--r--. 1 root root 0 Jun 26 11:58 4.txt
-rw-r--r--. 1 root root 0 Jun 26 11:58 5.txt
[[email protected] AndreyEx]# yes |rm *
rm: remove regular empty file ‘1.txt’? rm: remove regular empty file ‘2.txt’? rm: remove regular empty file ‘3.txt’? rm: remove regular empty file ‘4.txt’? rm: remove regular empty file ‘5.txt’?
[[email protected] AndreyEx]# ll
total 0
[[email protected] AndreyEx]#

这是在对yes命令给予连续响应时发生的事情,例如下一个rm命令的Yes。 删除所有文件而无需人工干预的结果。 这是用echo yes方法无法实现的,因为它只能一次输入为!

方法3:使用不同的输入命令yes。

假设您不想要答案,而不是是。 这一次您要对命令给出的所有确认回答“否”。 下面是一个示例。 在这里,我们对所有答案都没有回答。 因此,系统没有删除任何文件。

[[email protected] AndreyEx]# yes n |rm *
rm: remove regular empty file ‘1.txt’? rm: remove regular empty file ‘2.txt’? rm: remove regular empty file ‘3.txt’? rm: remove regular empty file ‘4.txt’? rm: remove regular empty file ‘5.txt’?
[[email protected] AndreyEx]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 26 11:59 1.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 2.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 3.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 4.txt
-rw-r--r--. 1 root root 0 Jun 26 11:59 5.txt
[[email protected] AndreyEx]#

即使您可以使用以下命令代替上面的命令。

# yes no |rm *

结论:

因此,我们可以使用命令 对Linux-Unix命令自动回答是或否。 这极大地帮助sysadmin连续执行命令,使命令的生活轻松舒适。

Sidebar