Как автоматически отвечать на Да или Нет в командах

Thank you for reading this post, don't forget to subscribe!

Много вре­ме­ни в коман­дах Linux / Unix или внут­ри скрип­та мы долж­ны обес­пе­чить ввод под­твер­жде­ния как Yes или No. Это поло­же­ние руч­но­го вво­да мож­но избе­жать. В этой ста­тье мы будем обсуж­дать, как мы можем делать авто­от­вет на Да или Нет для команд Linux-Unix, что­бы сде­лать жизнь про­ще для сисадминов.

Как автоматически отвечать на Да или Нет в командах Linux-Unix

Метод 1:  Повторять да или нет

Вы мог­ли бы исполь­зо­вать этот метод, вто­ря да или нет до фак­ти­че­ской коман­ды или сце­на­рия и раз­ме­ще­ния тру­бы «|» меж­ду эти­ми дву­мя коман­да­ми. Для раз­ра­бот­ки этой мето­ди­ки пока­жем пример.

Допу­стим, у вас есть пять тек­сто­вых фай­лов в ката­ло­ге «/tmp/AndreyEx», как пока­за­но ниже.

Теперь вы хоти­те уда­лить все или толь­ко один файл «1.txt» в этом ката­ло­ге. Ответ прост, коман­да rm. Одна­ко эта коман­да попро­сить да или нет, преж­де чем при­сту­пить к уда­ле­нию фай­ла. Как пока­за­но ниже:

В опи­сан­ном выше спо­со­бе мы обес­пе­чи­ли ввод «у» для коман­ды rm. Что­бы это­го мож­но было избе­жать, ука­жем перед коман­дой rm, как пока­за­но ниже:

Мы сде­ла­ли авто­ма­ти­че­ский ответ на коман­ду, но есть еще про­бле­ма. Коман­да echo не может исполь­зо­вать­ся для отве­та как непре­рыв­ный ответ да или нет на коман­ды. В этой ситу­а­ции вам необ­хо­ди­мо исполь­зо­вать сле­ду­ю­щий метод.

Метод 2: коман­да yes.

Да коман­да явля­ет­ся дру­гим вари­ан­том, если вам надо авто­ма­ти­че­ски отве­чать Yes или No на коман­ды в Linux-Unix.

В основ­ном то, что коман­да yes дела­ет, он непре­рыв­но выво­дит стро­ки, пере­да­ва­е­мые в них или даже пере­дать стро­ку yes в оди­ноч­ку. Сле­до­ва­тель­но, мы можем исполь­зо­вать эту воз­мож­ность для авто­ма­ти­че­ско­го отве­та да или нет в коман­ды Linux/Unix/скрипты. Давай­те рас­смот­рим при­мер. У нас есть пять фай­лов, как рань­ше, и мы хотим уда­лить все эти фай­лы, не отве­чая на вопрос о под­твер­жде­нии Да или Нет. Тогда попро­буй­те ниже метод, кото­рый исполь­зу­ет коман­ду «Yes».

Вот то, что про­изо­шло, когда коман­да yes дает­ся непре­рыв­ный ответ, как Yes для сле­ду­ю­щей коман­ды rm. Резуль­тат уда­ле­ния всех фай­лов без руч­но­го вме­ша­тель­ства. Это не может быть достиг­ну­то с помо­щью мето­да эхо-да, посколь­ку он дает ввод как Да толь­ко один раз !!!

Способ 3: команда yes с другим входом.

Допу­стим, вы не хоти­те отве­ты, вме­сто Да. В этот раз, когда вы хоти­те отве­тить no для всех под­твер­жде­ний, задан­ные коман­дой. Далее сле­ду­ет ниже при­мер. Здесь мы не отве­ти­ли no на все отве­ты. Сле­до­ва­тель­но, ника­кие фай­лы не были уда­ле­ны системой.

Даже вы може­те исполь­зо­вать сле­ду­ю­щую коман­ду вме­сто выше.