Jika Anda mampu mengetikkan koma sebanyak jumlah smooth
perintah yang Anda inginkan, Anda dapat mengambil keuntungan dari Brace Expansion yang dipisahkan oleh koma shell.
TL; DR
Seluruh baris perintah untuk case sampel Anda adalah:
generate | eval 'smooth |'{,,,,} plot
catatan:
- tambahkan atau hapus koma jika Anda ingin pengulangan lebih atau lebih sedikit
smooth |
- tidak ada
|
sebelumnya plot
karena itu termasuk yang terakhirsmooth |
string diproduksi oleh Brace Expansion
- Anda juga dapat memberikan argumen
smooth
, selama Anda dapat memasukkannya dengan benar di dalam bagian tetap yang dikutip yang mendahului kurung kurawal terbuka; dalam hal apa pun ingat bahwa Anda akan memberikan mereka untuk semua pengulangan perintah
Bagaimana itu bekerja
Ekspansi Brace yang dipisahkan dengan koma memungkinkan Anda untuk menghasilkan string secara dinamis, masing-masing terbuat dari bagian tetap yang ditentukan ditambah bagian variabel yang ditentukan. Ini menghasilkan string sebanyak ada bagian variabel yang ditunjukkan, sepertia{b,c,d}
menghasilkan ab ac ad
.
Trik kecil di sini adalah bahwa jika Anda lebih suka membuat daftar bagian variabel kosong , yaitu dengan hanya koma di dalam kurung kurawal, Brace Expansion hanya akan menghasilkan salinan dari bagian tetap saja. Contohnya:
smooth{,,,,}
akan menghasilkan:
smooth smooth smooth smooth smooth
Perhatikan bahwa 4 koma menghasilkan 5smooth
string. Itulah cara kerja Brace Expansion ini: menghasilkan string sebanyak koma ditambah satu.
Tentu saja dalam kasus Anda, Anda juga perlu |
memisahkan masing-masing smooth
, jadi tambahkan saja di bagian tetap tetapi berhati-hatilah untuk mengutipnya dengan benar agar shell tidak menafsirkannya sekaligus. Itu adalah:
'smooth|'{,,,,}
akan menghasilkan:
'smooth|' 'smooth|' 'smooth|' 'smooth|' 'smooth|'
Berhati-hatilah selalu menempatkan bagian tetap yang berbatasan langsung dengan brace terbuka, yaitu tidak ada ruang antara '
dan {
.
(Perhatikan juga bahwa untuk membentuk bagian tetap, Anda juga dapat menggunakan tanda kutip ganda dan bukan tanda kutip tunggal, jika Anda perlu memperluas variabel shell di bagian tetap. Hanya berhati-hati dengan pelolosan ekstra yang diperlukan saat karakter khusus beberapa shell muncul di dalam string yang dikutip ganda).
Pada titik ini Anda perlu eval
diterapkan ke string itu untuk membuat shell akhirnya menafsirkannya sebagai perintah pipelined seharusnya.
Jadi, untuk menjumlahkan semuanya, seluruh baris perintah untuk case sampel Anda adalah:
generate | eval 'smooth |'{,,,,} plot