Jest to prawdopodobnie bardzo łatwe, ale czy istnieje prosty sposób na napisanie komendy raz w konsoli i wykonanie jej n
razy, gdzie n
jest określona w czasie wykonywania? Coś takiego:
repeat 100 echo hello
Czy takie polecenie istnieje (zakładając typową instalację systemu Linux)?
A może napisałbym, żeby zrobić jakąś pętlę w bash?
command-line
unix
Jørn Schou-Rode
źródło
źródło
Tak, chciałbyś:
lub krócej:
źródło
Oprócz bardziej wbudowanych metod można użyć zewnętrznego narzędzia, które generuje ciąg liczb.
źródło
Nie znalazłem „standardowego” narzędzia Linux do wykonania tego zadania, ale zwykle zachowuję swoje pliki kropek (.bashrc, .vimrc itp.) Od instalacji do instalacji, więc poniższe informacje są dość „standardowe”, jeśli spojrzy się na to z perspektywa zachowania plików kropek w nowych instalacjach:
Na końcu pliku .bashrc lub .bash_aliases wpisz następującą definicję:
Zapisz plik i ponownie otwórz powłokę lub uruchom
source /path/to/.bashrc
lubsource /path/to/.bash_aliases
, zależnie od tego, co wybierzesz do modyfikacji, w istniejącej powłoce.Otóż to! Powinieneś być w stanie używać go w następujący sposób:
repeat 100 echo hello
repeat 84 ~/scripts/potato.sh
itp.
źródło
Składnia pętli for jest głupia. To jest krótsze:
źródło
Obecnie żadna z pozostałych odpowiedzi nie używa standardowych narzędzi uniksowych, o które pyta tytułowe pytanie.
Wszystkie używają niestandardowych poleceń (
seq
lubjot
) lub rozszerzeń powłoki (rozwinięciefor
pętli w stylu C lub nawias klamrowy), tzn. Wszystkie nie są zgodne ze standardem POSIX.Oto przenośny sposób, który powinien działać z dowolną powłoką i systemem operacyjnym zgodnym z POSIX:
źródło