如何在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