Pertama-tama saya ingin meminta maaf, karena hari jumat lalu saya tidak bisa menulis postingan maka hari ini saya akan menambahkan tambahan untuk mengganti hari yang hilang. 🙂
Ekspansi Brace
Dalam ekspansi kunci Spanyol menurut saya menjadi fungsi yang terinspirasi oleh kulit C, ini menghasilkan kombinasi antara karakter yang dimasukkan di dalam kurung kurawal, urutan yang digunakan adalah dari kiri ke kanan. Ini tidak rumit sama sekali tetapi ini adalah opsi yang akan sangat berguna dalam tur GNU / Linux kami.
Contoh:
$ echo a {1,2,3} a1 a2 a3
Saat digunakan dengan koma (,) menghasilkan kombinasi antara nilai a dan nilai di dalam kurung kurawal. Jika tidak ada nilai di luar kunci, itu hanya akan ditampilkan sekali setiap nilai yang berisi kunci tersebut.
$ echo {a, b, c} abc
Penggunaannya tidak rumit sama sekali, ada contoh lain yang lebih umum seperti membuat banyak direktori dalam satu folder
$ mkdir ~ / Pekerjaan / {satu, dua, tiga, empat, lima}
Ini membuat lima folder di dalam folder pekerjaan, seperti memasukkan satu perintah dalam satu waktu. Membuat 5 direktori.
Ada ekspansi dua poin .. ini membuat serangkaian angka atau karakter yang pergi dari nilai awal ke nilai akhir, jangan gunakan angka berhuruf.
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} #Saya rasa saya tidak akan pernah terbiasa dengan ini warna biru dalam huruf
Kita dapat menghemat waktu dengan membuat siklus untuk
# Daripada menulis $ for ((i = 1; i <= 5; i ++)); lakukan echo "Nomor saya $ i"; selesai Nomor saya 1 Nomor saya 2 Nomor saya 3 Nomor saya 4 Nomor saya 5 #Simpan kode menggunakan ekspansi brace. $ untuk saya di {1..5}; do echo "Nomor saya $ i; selesai Nomor saya 1 Nomor saya 2 Nomor saya 3 Nomor saya 4 Nomor saya 5 #Tentu saja valid untuk digunakan meskipun keluarannya berbeda. $ echo" Nomor saya "{1..5} Nomor saya 1 Nomor saya 2 Nomor saya 3 Nomor saya 4 Nomor saya 5
Nah menurut saya konsepnya sudah jelas, haha sekarang saya hanya akan berkomentar bahwa itu bisa digabung dan bersarang Apa yang saya maksud dengan ini?
Dengan combinable itu kita bisa menggabungkan satu atau lebih kunci
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
Dengan bersarang, seperti yang dibayangkan banyak orang, Anda dapat menggunakan kunci ekspansi dalam kunci ekspansi
$ echo {a, c {1..3}, d} a c1 c2 c3 d
Dan akhirnya dari Bash NOTHING adalah mungkin untuk meningkatkan nilai.
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
Ini semua untuk hari ini, jadi terima kasih telah membaca saya orang 🙂
ekstra
Cara membuat tempat sampah lokal
Saat saya mengatakan a bin local Maksud saya direktori di mana kita memiliki skrip kita sendiri dan dimungkinkan untuk mengeksekusinya sebagai perintah sederhana ...
Untuk mencapai ini relatif mudah, hal pertama yang perlu Anda lakukan adalah membuat direktori tempat kami akan menyimpan skrip.
mkdir ~ / .bin # Dalam contoh ini, ini akan disembunyikan
Sekarang kita memiliki folder untuk menyimpan skrip tetapi tidak akan berfungsi sampai kita menambahkan jalur .bin baru ke $ PATH
Untuk ini file tersebut diedit bash_profile, dan garis itu ditambahkan.
ekspor PATH = $ PATH: ~ / .bin
Dan voila, itu sudah cukup untuk membuat local bin tentunya akan meminta izin root jika perlu misalnya kita menulis quick script.
#! / bin / bash echo "Hai $ 1, apa kabar?"
Simpan dengan nama halo
Skrip diberi izin eksekusi dan itu hanya akan cukup untuk memanggilnya dari terminal
$ hello wada #Ini akan menampilkan pesan Hello wada, apa kabar?
Jadi dengan trik cepat ini Anda dapat menjalankan skrip Anda lebih cepat
Sekian untuk hari ini orang yang sehat 🙂
PS Maaf buat kesalahan, kalau ada mataku sudah terpejam hahaha 😀
Saya sudah lama terlibat dalam masalah bash dan saya belum memahami ekspansi brace ini, terima kasih.
Di trik jalur, Fedora secara default melakukan sesuatu seperti ini tetapi di "~ / .local / bin", lihat cuplikan dari bash_profile yang saya bawa ke Jessie.
JALAN = $ JALUR: $ BERANDA / .local / bin: $ BERANDA / bin
ekspor PATH
Saya memiliki beberapa kekhawatiran:
1. Bagaimana saya membuatnya memberi saya dua interval dengan ekspansi demi poin; usia {1..24,55..90} dan bahwa saya menambah usia dari 1 menjadi 24 dan berlanjut dengan 55 menjadi XNUMX. seperti yang saya lakukan itu tidak berhasil. Mengapa?
2. Jika saya ingin nilai pertama menjadi nol dan lanjutkan dengan penomoran:
dapatkan: http://manga.favorito /gambar http://manga.favorito/imagen1
Saya mencoba cara berikut tetapi wget tidak mendapatkan: http://manga.favorito/imagen{, 1..42} Menurut saya, saya harus meninggalkan nama depan tanpa nomor dan melanjutkan penomoran dari 1 hingga 42 tetapi ternyata tidak seperti itu. Mengapa?
Anda benar beberapa distro memiliki atau memiliki .bin tetapi itu agar semua orang dapat memahami dan melihat bahwa itu mungkin untuk dilakukan di distro manapun: D, Terima kasih sudah mampir.
Sangat bagus, sangat bagus untuk kontribusi pengetahuan ini bagi dunia linux dan keamanannya, pada hari Jumat saya berharap saya bisa membaca bagaimana memformat flashdisk di terminal dan membakar gambar DVD / CD iso dari sistem gratis apa pun di terminal.
Terima kasih atas kata-katamu saudara 😀 Saya berjanji bahwa Jumat depan saya akan melakukan posting itu. Dan saya harus salah satu tentang menyesuaikan Vim hahaha tetapi saya tidak ingin mereka berpikir itu hanya akan mencakup Vim.
Artikel terminal yang luar biasa, yang terbaik yang pernah saya baca dalam waktu yang lama, menghitung beberapa blog yang menerbitkan tutorial gaya ini. Terima kasih banyak!!
Terima kasih banyak 😀 Saya akan berusaha untuk mengikutinya.
Tip Luar Biasa dari Tempat Sampah Lokal!
Salam!
Luar biasa, mantap bermanfaat buat kamu, terima kasih banyak sudah lewat kakak 😀
Baik sekali! Tidak tahu tentang ini. Terima kasih 🙂
Sama-sama saudara terima kasih telah meluangkan waktu untuk membacanya 😀
Saya memiliki beberapa kekhawatiran:
1. Bagaimana saya membuatnya memberi saya dua interval dengan ekspansi demi poin; usia {1..24,55..90} dan bahwa saya menambah usia dari 1 menjadi 24 dan berlanjut dengan 55 menjadi XNUMX. seperti yang saya lakukan itu tidak berhasil. Mengapa?
2. Jika saya ingin nilai pertama menjadi nol dan lanjutkan dengan penomoran:
dapatkan: http://manga.favorito/imagen http://manga.favorito/imagen1
Saya mencoba cara berikut tetapi wget tidak mendapatkan: http://manga.favorito/imagen{, 1..42} Menurut saya, saya harus meninggalkan nama depan tanpa nomor dan melanjutkan penomoran dari 1 hingga 42 tetapi ternyata tidak seperti itu. Mengapa?
* Maaf tapi saya menempatkan posting pertama sebagai jawaban dan ternyata salah di beberapa bagian
1.- Logika Anda salah Anda harus bersarang itu hahaha coba
$ echo {{1..24},{55..90}}
2.- Sama seperti yang sebelumnya ...
$ echo "URL"{,{1..42}}
Jangan khawatir saudara, kami di sini untuk membantu kami 🙂
Untuk mengganti for dengan echo akan terlihat seperti ini
echo "Nomor saya" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'
tetapi saya lebih suka printf
printf "I, I% d \ n" {1..5}
dan menggunakan konsep ekspansi kunci yang sama
atte
jvk85321.dll
Bagaimana Anda meletakkan kotak terminal ????
atte
jvk85321.dll
Menguji apakah tag kode berfungsi
hehe
Untuk mengganti for dengan echo akan terlihat seperti ini
echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’
pero prefiero printf
printf “Mi numero %d\n” {1..5}
dan menggunakan konsep ekspansi kunci yang sama
atte
jvk85321.dll
Saya tertinggal dengan beberapa bug tetapi berhasil
Saya hidup maluco
Maaf sudah mengganggu
atte
jvk85321.dll
Hahaha kamu menjawab sendiri tapi kalau di antara label
tidak ada ruang ...
Dan untuk penggantiannya tidak perlu banyak pipa hahahaha cukup dengan:
echo -e "Mi numero "{1..5}"\n\b"
Sejujurnya printf adalah cara terbaik untuk mencetak teks dalam skrip, ini lebih portabel tetapi secara tradisional menggunakan echo.
Saya mengambil ruang! hahahahaha
mari kita lihat sekarang 😀
Persetan itu "kurang dari" kode "lebih besar dari" "kurang dari" / kode "lebih besar dari" hahahaha
Masalah yang echo -e tidak standar, jadi tidak bekerja pada semua sistem.
Juga terlihat berantakan
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Dan dengan ini
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Menurut saya yang kedua lebih bagus hasilnya, hahaha
atte
jvk85321.dll
Label-label ini payah, hehehe, mari kita lihat apakah mereka berhasil sekarang
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Dan dengan ini
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
Menurut saya yang kedua lebih bagus hasilnya, hahaha
atte
jvk85321.dll
Ngomong-ngomong, biarkan spasi di antara garis, itu sebabnya saya benci html, hahahaha
Luar biasa! Aku tepuk kakimu haha
Saya tidak tahu bahwa kunci dapat disarangkan, karena saya juga tidak pernah mencoba menggunakannya, ini benar-benar menghemat banyak kode dan juga lebih mudah dibaca dengan cara ini. Terima kasih!
Terima kasih kepada saudara yang telah lewat, saya senang itu berguna
Sama-sama, untuk itulah kami di sini, untuk berbagi dan menyumbangkan ide. Saya tidak tahu bagaimana memprogram, saya hanya melakukan beberapa hal di Bash dan saya menerbitkan beberapa skrip yang saya lakukan dalam dua posting. Saya pikir mengetahui ini dapat membuat kode lebih mudah dipahami.