Jest to yes
komenda w Unix / Linux, która w zasadzie nieskończenie drukuje y
do stdout
. Jaki jest tego sens i jak jest przydatny?
Jest to yes
komenda w Unix / Linux, która w zasadzie nieskończenie drukuje y
do stdout
. Jaki jest tego sens i jak jest przydatny?
Odpowiedzi:
tak może być użyte do wysłania odpowiedzi twierdzącej (lub negatywnej; np. tak n) na każde polecenie, które w innym przypadku zażądałoby jednego, powodując w ten sposób, że polecenie nie będzie działać interaktywnie.
Polecenie tak w połączeniu z poleceniem head może być użyte do wygenerowania dużych plików do celów testowania.
Można go również użyć do przetestowania, jak dobrze system radzi sobie z dużymi obciążeniami, ponieważ użycie tak powoduje 100% wykorzystanie procesora, w systemach z jednym procesorem (w przypadku systemu wieloprocesorowego proces musi być uruchomiony dla każdego procesora). Może to być przydatne na przykład do sprawdzenia, czy system chłodzenia systemu będzie skuteczny, gdy procesor będzie działał na 100%.
W 2006 r. Polecenie „tak” otrzymało rozgłos jako środek do sprawdzenia, czy na MacBooka użytkownika występuje zespół przerywany. Dwukrotne uruchomienie polecenia tak za pośrednictwem terminala w systemie Mac OS X umożliwiło maksymalne wykorzystanie mocy obliczeniowej procesora komputera, a tym samym sprawdzenie, czy awaria była związana z wysoką temperaturą
przez wikipedia: http://en.wikipedia.org/wiki/Yes_(Unix)
yes `yes yes`
Może to być kontrowersyjna opinia, ale moim zdaniem jest to brzydka naprawa złego interfejsu użytkownika w narzędziach wiersza poleceń .
Niektóre narzędzia wiersza poleceń zadają pytania użytkownikowi bez pytania i nie mają opcji uruchamiania w trybie nieinteraktywnym; wyobraź sobie na przykład coś takiego
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
Ponieważ odpowiedź na pytanie pochodzi ze standardowego wejścia, szybkim rozwiązaniem tego problemu jest posiadanie aplikacji, która y\n
nieprzerwanie wysyła ciąg znaków , co jest dokładnie tym, co yes
robi. Unix rury mogą być wykorzystywane do wysyłania tego wyjścia jako wejście do danego polecenia.
$ yes | frobnicate
Jednym z problemów związanych z tym podejściem jest to, że yes
nie ma możliwości sprawdzenia pytania, na które odpowiada:
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y
Lepszym rozwiązaniem, jeśli jest dostępne, jest konkretna opcja do uruchamiania bez interakcji, np. rm -f
Lub apt-get -y
. Umożliwia to kodowanie bardziej sensownego zachowania w aplikacji.
Właśnie spotkałem się z innym zastosowaniem: lubiłem wymazywać dysk twardy z innym wzorcem niż tylko zera (jak: dd if = / dev / zero of = / dev / sdd bs = 1M) i użyłem „tak”:
yes UUUUUUUUUUUUU > /dev/sdd
Współpracownik wykorzystał to w nowatorski sposób do wprowadzenia hasła
yes password | passwd
passwd
poprosi najpierw o stare hasło, jeśli użytkownik nie jest rootem ani superużytkownikiem i nie będzie kontynuował, dopóki nie zostanie wprowadzone prawidłowe hasło. Więc albo użytkownik jest rootem, albo password
jest też starym hasłem i nic się nie zmienia.
ps
lub top
w odpowiednim momencie).