Teori Bash

/ bin / bash

0. Indeks

  1. Perkara yang berlaku pada kebanyakan orang
  2. Struktur skrip
  3. Cetak di skrin
  4. Baca INPUT pengguna
  5. Pengiraan dalam bash
  6. Terma
  7. Gelung
  8. fungsi
  9. Permulaan

1. Perkara yang berlaku pada kebanyakan orang

/ bin / bash atau / bin / sh

Salah satu perkara pertama yang dilakukan mesin semasa melaksanakan skrip kami adalah melihat cangkang mana yang harus dilakukan. Pada kebanyakan sistem linux semasa / Bin / sh adalah pautan ke / bin / bash, tetapi ini tidak selalu berlaku, misalnya dalam pengedaran yang menggunakan peti sibuk mereka membawa Sh dan biasanya mereka juga membawa Bash, tetapi jika anda menggunakan / Bin / sh, ia tidak akan berjalan dengan Bash. Itulah sebabnya saya mengesyorkan selalu menggunakan / bin / bash.

Unicode lwn ASCII

Pernahkah anda terfikir mengapa anda tidak dapat menggunakan "¿" atau "ñ" dalam skrip anda? Atau gunakan aksen? Ia boleh mengganggu skrip interaktif. Ini kerana pengekodan default Bash adalah ASCII, atau yang sama, set aksara bahasa Inggeris. Untuk mengubahnya, kita hanya perlu memberitahu skrip kita bahawa kita ingin menggunakan Unicode. Untuk itu anda harus menambahkan baris tepat selepas jurubahasa arahan:

# - * - PENGENALAN: UTF-8 - * -

Hati-hati, penting bahawa baris ini berada di awal skrip.

Jadikan skrip boleh dilaksanakan

Lucunya berapa orang yang menjalankan skrip dengan «$ bashscript.sh"bukannya"$ ./script.sh"Lagipun, inilah yang kami maksudkan sebagai shell.

Untuk menambahkan izin pelaksanaan, anda harus melaksanakan:

sudo + x script.sh
Sekiranya skrip kita dapat dilaksanakan, kita dapat menambahkannya ke PATH kita dan membuatnya dapat dilaksanakan dari mana saja / folder di komputer kita. Untuk itu kita mesti menambah sama ada pada .bashrc pengguna kita atau ke / etc / bashrc baris
BIN = "folder di mana kita mempunyai skrip" PATH = "$ BIN $ PATH"
Ini adalah peraturan Bash untuk menulis nama pemboleh ubah di semua huruf besar. Ramai orang tidak mengikuti peraturan ini, tetapi untuk skrip yang panjang dihargai kerana mereka menjadikannya lebih mudah dibaca

2. Struktur skrip

  1. Header
  2. Definisi pemboleh ubah global
  3. Bantuan
  4. fungsi
  5. Badan utama

Header adalah tempat kami menunjukkan shell mana yang ingin kami gunakan dan pengekodan. Kelebihan fungsi adalah menggunakan semula kod yang diulang dengan menulisnya sekali sahaja dan untuk lebih mudah memahami skrip, kerana kod yang melebihi 100 baris sangat berguna.

Untuk menggunakan fungsi, fungsi tersebut mesti ditentukan sebelum badan utama skrip kita. Dan jika kita ingin menggunakan pemboleh ubah di peringkat global dari semua skrip kita, baik dalam badan utama dan fungsi, kita mesti menentukannya di awal segalanya, tepat setelah tajuk.

Terakhir, adalah amalan yang baik untuk menulis fungsi pembantu ketika skrip kita berjalan dengan buruk atau dengan parameter yang buruk. Jelas sekali, dalam kes tersebut kita mahu segera keluar dari skrip, tanpa membaca fungsinya. Untuk itu kita boleh menggunakan:

bantuan fungsi () {echo "" "Teks bantuan berformat baik kami." "" Keluar jika [[-z $ 1 || $ 1 == "-h" || $ 1 == "--membantu"]]; kemudian menolong fi

Sekiranya kita menambahkan "exit" ke fungsi bantuan, kita akan keluar skrip setiap kali kita menjalankan pertolongan, misalnya setelah pesan kesalahan, dll. Kami menyimpan beberapa baris kod.

Keadaan menunjukkan bantuan paparan di layar dan keluar jika skrip dijalankan tanpa parameter atau jika -h / –help ditentukan. Sekiranya anda melihat bahawa itu adalah tingkah laku standard kebanyakan program linux.

Penggunaan 3 tanda kutip dengan gema memungkinkan untuk menggunakan jeda baris tanpa meninggalkan mesej untuk dipaparkan oleh gema. Untuk mesej berbilang baris adalah lebih senang menggunakan gema hanya sekali.

3. Cetak di skrin

Terdapat 2 perintah utama untuk mencetak ke layar dalam bash: «echo»Dan«Printf«. Mereka berdua sama cepat dan kedua-duanya adalah bahagian dari bash. Perbezaan utama untuk pemula adalah bahawa gema menambah garis baru pada akhir, sedangkan «Printf"Tidak.

Echo sangat baik dan itulah yang digunakan oleh kebanyakan orang, namun ketika membaca INPUT pengguna, atau ketika anda ingin mencetak pemboleh ubah yang diambil dari fail dengan pemprosesan kata, perkara aneh dapat terjadi. Mereka biasanya dapat diselesaikan dengan mudah, semudah menukar tanda petik menjadi tunggal atau sebaliknya, atau mengeluarkan rujukan pemboleh ubah dari tanda petik. «Echo»Adakah perkara-perkara aneh juga bergantung pada bagaimana penyusunannya, jika kita selalu menggunakan Ubuntu atau selalu Fedora, itu tidak akan mempengaruhi kita, tetapi jika kita mengubah pengedarannya.

Itulah sebabnya saya menggunakan «Printf«, Yang tidak membuat saya sakit kepala dan juga berkelakuan seperti«Printf»Dari C atau«cetak»Dari Python, ini sangat penting jika anda ingin memindahkan skrip anda ke bahasa pengaturcaraan yang lain.

Untuk perbincangan yang lebih luas anda boleh lawati soalan ini dari Unix & Linux di Stack Exchange.

4. Baca INPUT pengguna

Semua yang kita tulis mengikut nama skrip kita dan sebelum menekan tombol ENTER secara automatik disimpan dalam pemboleh ubah khas. Pemboleh ubah ini adalah jenis $ X di mana X adalah nombor.

«$0»Menunjukkan nama skrip kami dan dari«$1»Ke tak terhingga semua yang kita tulis kemudiannya berubah-ubah. Sebagai contoh:

kucing << EOF >> test.sh #! / bin / bash # - * - ENCODING: UTF-8 - * - printf "\ $ 0 = $ 0 \ n" printf "\ $ 1 = $ 1 \ n" printf "\ $ 2 = $ 2 \ n "EOF chmod + x script.sh ./script.sh file.txt saya

Kami membuat skrip ujian, membuatnya dapat dijalankan, dan menjalankannya dengan 2 parameter. Kami memperoleh output skrin:

$ 0 = ./script.sh $ 1 = $ 2 saya = file.txt

Dengan menggunakan petikan, kita dapat meneruskan "file.txt saya" ke "$ 1".

Kita juga dapat membaca INPUT pengguna dengan perintah "baca", secara langsung menunjukkan pemboleh ubah di mana kita ingin menyimpan parameter. Sebagai contoh:

printf "Siapa nama anda? \ n" baca NAMA printf "Helo, $ NAME. \ n"
Berhati-hati dengan penetapan pemboleh ubah. "$ VAR = content" akan menghasilkan ralat, tidak ada ruang yang dapat ditinggalkan antara tanda sama, nama pemboleh ubah dan isi. Penggunaan yang betul adalah "VAR = content"

5. Pengiraan dalam Bash

Untuk itu kita boleh menggunakan «exprSelagi kita tidak perlu melakukan pengiraan yang rumit. Dua perkara harus diperhatikan, yang pertama ialah «expr»Hanya mengakui nombor bulat, yang kedua ialah bahagian mengembalikan keseluruhan keputusan, untuk melihat selebihnya kita dapat menggunakan%".

Biasanya kita mahu memberikan hasil expr kepada pemboleh ubah. Kita boleh melakukannya dengan dua cara:

VAR2 = `expr $ VAR1 / 10` VAR2 = $ (expr $ VAR1 / 100)

Anda juga boleh melangkau «expr»Menggunakan tanda kurung berganda:

VAR2 = $ (($ VAR1 / 100))
Untuk penjelasan lebih lanjut mengenai «expr»Atau alternatif yang menggunakan nombor bulat, anda boleh lihat ini entri KZKG ^ gaara.

6. Syarat-syarat

Telah ditulis dengan cara yang sangat luas mengenai «if«,«lagi«,«elif»Dan syarat. Anda boleh membacanya dalam:

Saya hanya ingin menonjolkan perbezaan antara penggunaan tanda kurung persegi sederhana, «[]«, Dan kurungan berganda,«[[]]«, Untuk syarat. Dengan kurungan berganda kita boleh menggunakan syarat tambahan:

  • «&&»Untuk dan
  • «||»Untuk atau

Untuk menggunakan "&&»Dan«||»Dengan tanda kurung persegi sederhana, setiap bahagian harus dipisahkan dalam kurungan persegi yang terpisah. Contoh yang digunakan untuk bahagian skrip yang ingin melihat apakah pertolongan perlu dilaksanakan adalah:

jika [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "--help"]]; kemudian menolong fi

Ini juga menyelamatkan kita dari menulis nama pemboleh ubah dalam tanda kutip untuk mengelakkan kesilapan. Sebagai contoh:

jika [$ 1 = 1]; kemudian printf "Parameternya sama dengan 1."; fi jika ["$ 1" = 1]; kemudian printf "Parameternya sama dengan 1."; fi jika [[$ 1 = 1]]; kemudian printf "Parameternya sama dengan 1."; fi

Sekiranya script.sh dijalankan tanpa parameter, kes pertama akan memberikan ralat:

bash: [: =: pengendali unary dijangka
Dalam Bash "=" dan "==" kedua-duanya ditafsirkan dengan cara yang sama. Ini tidak berlaku dalam bahasa pengaturcaraan lain di mana "=" digunakan hanya untuk menetapkan pemboleh ubah.

Yang belum dibincangkan adalah «kes«, Digunakan untuk mempermudah«if«. Mari kita mulakan pada awal, apabila kita tidak mempunyai «if»Semua kod akan dilaksanakan. Sekiranya kita menambah syarat «if»Kami akan mempunyai dua kes, satu di mana blok kod di dalam«if»Dan kes lain di mana blok ini tidak dijalankan.

Sekiranya kita menambah «lagi"Kami juga akan mempunyai dua kes, tetapi kedua kes ini berbeza dengan yang sebelumnya. Kerana sekarang akan ada dua blok kod bersyarat, A dan B, dan blok C, yang merupakan sisa program. A atau B akan dilaksanakan, dan C. Dalam kes sebelumnya itu A dan C atau hanya C.

Untuk mengelakkan keadaan menulis «jika tidak"dalam"lagi»Dan mempermudah pembacaan kod, ia dibuat«elif«. Apabila kita mempunyai banyak syarat yang bergantung pada yang sebelumnya, misalnya julat nombor atau jenisnya:

VAR1 = $ 1 jika [[$ VAR1 = 1]]; kemudian printf "1 \ n" elif [[$ VAR1 = 2]]; kemudian printf "2 \ n" elif [[$ VAR1 = 3]]; kemudian printf "3 \ n" lain printf "none \ n" fi

Dalam kes yang terakhir «elif»Banyak syarat akan dibaca. Sekiranya proses ini diperkemas:

VAR1 = $ 1 kes $ VAR dalam 1) printf "1 \ n" ;; 2) printf "2 \ n" ;; 3 | 4) printf "3 atau 4, itu bergantung \ n" ;; *) printf "tidak ada \ n" ;; bahawa C

Pemboleh ubah akan dibaca, dalam hal ini VAR1, dan ia akan diperiksa apakah ia setara dengan mana-mana kes, jika tidak, kes lalai "*" akan dijalankan. Titik koma berganda bersamaan dengan «memecahkan«, Mereka memberitahu«kes»Itu mesti berakhir.

«kes»Juga boleh digunakan sebagai urutan«if«, Untuk itu anda harus menggunakan« ;; & »(bersambung) dan bukannya« ;; » (berhenti).

7. Gelung

Sangat sedikit gelung yang dikenali dalam mana-mana bahasa pengaturcaraan. Dalam Bash mereka «manakala«,«sehingga»Dan«Untuk«. Telah ditulis dalam blog mengenai perkara-perkara berikut:

Terdapat dua jenis gelung «Untuk«, Mereka yang jenisnya«$ untuk VAR di LOQUESEA»Dan apakah jenis C«$ untuk ((I = 0; I <= 10; I ++))«. Gelung jenis kedua «Untuk»Sangat berguna, ia mempunyai 3 bahagian pada awal gelung:

  • Perisytiharan dan permulaan pemboleh ubah (Dalam kes ini pemboleh ubah tambahan "I = 0").
  • Keadaan pelaksanaan (sehingga saya kurang dari atau sama dengan 10).
  • Peningkatan pemboleh ubah tambahan

Pada pendapat saya, ia adalah gelung yang paling kuat. Contoh, yang mencetak semua nombor dari 0 hingga 10, termasuk:

#! / bin / bash untuk ((I = 0; I <= 10; I ++)); adakah printf "$ I \ n" selesai

8. Fungsi

Ada beberapa perkara yang tidak diizinkan oleh Bash untuk kita lakukan, bukan? Pada pandangan pertama, fungsi bash mencegah anda melakukan 3 perkara: menyatakan pemboleh ubah tempatan dalam fungsi, meneruskan parameter ke fungsi, dan mengembalikan parameter. Semuanya ada jalan penyelesaian.

Jangan buat seperti:

#! / bin / bash VAR = 1 printc "$ VAR \ n" function hello () {VAR = 2 printf "$ VAR \ n"} halo printf "$ VAR \ n"

Ini dicetak ke skrin 1, 2 dan 2.

Untuk menyatakan pemboleh ubah tempatan, tambahkan «tempatan»Semasa menyatakan:

#! / bin / bash VAR = 1 printf "$ VAR1 \ n" function foo () {local VAR1 = 2 printf "$ VAR1 \ n"} printf "$ VAR1 \ n" foo printf "$ VAR1 \ n"

Ini mencetak 1, 1, 2, 1 di skrin.

Bagaimana anda menyampaikan parameter ke fungsi?

#! / bin / bash # - * - ENCODING: UTF-8 - * - function hello () {printf "Hello $ 1 \ n"}

printf "Siapa nama anda? \ n"
baca VAR1
hello $ VAR1

Bagaimana parameter dikembalikan?

#! / bin / bash # - * - ENCODING: UTF-8 - * - function hello () {printf "Hello holita"} printf "Siapa nama anda? \ n" baca VAR1 VAR1 = $ (hello) # DI SINI ADALAH printf "$ VAR1 $ VAR2 \ n"

Seperti yang anda lihat, ini mempunyai dua kelemahan, anda hanya dapat mengembalikan satu parameter, yang boleh menjadi vektor 😀, dan jika anda ingin mengembalikan parameter, anda tidak lagi dapat mencetak di layar dari fungsi tersebut.

Podéis encontrar más cosas de funciones en [url=https://blog.desdelinux.net/programando-en-bash-parte-3/]este artículo de Usemoslinux[/url].

9. Dapatkan

Salah satu perkara terakhir yang perlu anda ketahui mengenai Bash untuk membuat skrip yang kompleks adalah «barang kemas«. Ini digunakan untuk menyampaikan pilihan ke skrip tanpa mengira urutannya. Satu-satunya kelemahan adalah bahawa ia hanya mempengaruhi pilihan pendek:

#! / bin / bash # - * - ENCODING: UTF-8 - * - VARC = 0 help function () {printf "Mesej bantuan \ n" keluar} jika [[-z $ 1]]; kemudian bantu fi semasa mendapatkan: ha: b: c OPT; adakah kes $ OPT dalam h) tolong ;; :) tolong ;; a) VARA = $ OPTARG ;; b) VARB = $ OPTARG ;; c) VARC = 1 ;; \?) pertolongan ;; esac selesai # Blok utama skrip yang # melakukan perkara dengan VARA, VARB dan VARC

«Barang kemas»Membaca pilihan satu persatu, jadi gelung diperlukan.

Terdapat 2 jenis pilihan yang boleh dilalui menggunakan «getopts":

  • Parameter disebut bendera, dalam kes ini -c atau -h. Mereka dinyatakan dengan huruf yang ingin kita gunakan. Mereka seperti pemboleh ubah Boolean, «benar»(Adakah) atau«palsu"(Mereka tidak ada di sini).
  • Parameter dengan argumen yang berkaitan, -sebarang, -b apa sahaja. Mereka dinyatakan dengan huruf yang kita mahukan dengan titik dua di bawah. Argumen disimpan dalam OPTARG (nama ini tidak dapat ditukar).
Titik ganda awal adalah untuk tidak menunjukkan kesalahan.

Apa yang dilakukan oleh skrip ini?

Menampilkan pesan pertolongan ketika tidak ada pilihan yang dilewatkan, ketika parameter "-h" diteruskan, ketika parameter yang tidak valid dilalui (misalnya "-x", ini dilakukan oleh "\?") Atau apabila parameter yang sah tanpa argumen (":"). Dalam kes-kes yang selebihnya, ia menjimatkan kehadiran "-c" sebagai 1 di VARC, dan nilai diteruskan dengan "-a" dan "-b" di VARA dan VARB.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   meriah kata

    MASTERI. Saya tidak mengatakan lebih banyak U_U

  2.   Miguel kata

    Helo, artikel yang sangat baik.
    Hai anda memberi izin sudo + x dan bukannya chmod + x

    1.    Henry kata

      $ sudo chmod + x script.sh
      (Untuk lebih tepat, hehe)

      Ah, tahniah dan terima kasih!

  3.   bunga api kata

    Pos yang sangat baik, sebenarnya saya mengucapkan tahniah kepada anda, teruskan, Salam

  4.   Gustavo kata

    Dan jika anda mahu skrip itu dapat dilihat ketika ia dijalankan, langkah demi langkah, melihat contohnya bagaimana pemboleh ubah, keadaan dan segala sesuatu berperilaku, anda boleh menggunakan:

    skrip sh -x

    salam

  5.   dago kata

    PIECE pengasuhan. Cemerlang dan dijelaskan dengan baik.
    Terima kasih.

  6.   Gabriel kata

    Catatan yang sangat baik mengenai subjek 😉

  7.   Mario Guillermo Zavala Silva kata

    Sangat menarik dan penting, terima kasih atas maklumatnya….
    PENYAYANG !!!

  8.   Bukan daribrooklyn kata

    Terima kasih semua atas ucapan tahniah, kerana untuk perintah Miguel, dia tidak membenarkan saya mengubah entri setelah diterbitkan. Itu mesti dilakukan elav yang saya bayangkan.

  9.   Adrian kata

    Sangat bagus!

    Mula-mula saya ingin mengucapkan tahniah kepada anda melalui siaran tersebut, saya merasa mudah difahami dan sangat membantu untuk mengikuti panduan untuk memprogram dengan baik dalam kumpulan, terutama bagi orang yang mula memprogram.

    Walau bagaimanapun, saya telah menemui beberapa butiran yang saya fikir harus diperbetulkan.

    Pertama: di bahagian «2. STRUKTUR TULISAN »fungsi tidak ditutup, yang akan menyebabkan masalah ketika melaksanakannya dalam skrip.
    Penyelesaiannya adalah dengan menambahkan tanda kurung penutup setelah perintah "keluar".

    Kedua: di bahagian «4. BACA INPUT PENGGUNA "anda mengesahkan bahawa parameter yang boleh dimasukkan oleh pengguna mulai dari $ 0 hingga tak terhingga, namun," bash "hanya akan menafsirkan dari $ 0 hingga $ 9, kerana $ 10 akan sama dengan $ 1 + 0.
    Untuk menyelesaikan masalah ini, anda boleh menggunakan perintah "shift" untuk mengambil pemboleh ubah berikut. Atau, tentukan pemboleh ubah dalam pendakap "$ {10}", supaya bash menyatukan nilainya, bukan sebagai $ 1 + 0.

    Tanpa basa-basi lagi, salam!

    1.    Bukan daribrooklyn kata

      Terima kasih atas komen anda. Ini sama sekali gagal menjelaskan penggunaan jalan keluar yang betul, baik dalam skrip dan fungsi. Untuk $ {10} saya tidak pernah mewariskan begitu banyak, jadi saya tidak menghadapi masalah itu, ada baiknya mengetahui bahawa ada jalan keluar untuk itu (saya telah mengetahui perkara baru yang dipelajari hari ini 😀).

  10.   chanio kata

    Terima kasih banyak untuk artikel itu! Beberapa perkara yang anda sebutkan masih kurang dijelaskan. Contohnya, getops.
    Di bahagian output skrin, anda harus menyebut kucing yang kemudian anda sebutkan ...
    kucing <
    ***************************************
    * BORANG INI SANGAT EKSPRESIF *
    ***************************************
    EOF

    Dalam contoh anda:
    kucing << EOF >> test.sh
    Dua perkara harus disebutkan ... >> itu adalah 'lampiran' iaitu, jika anda mengulangi perintah yang sama, anda akan mempunyai keseluruhan skrip dalam rangkap ... Anda hanya perlu menggunakan satu ...
    kucing << EOF> script.sh
    Ya, ia juga harus disebut script.sh
    Kemudian masuk
    jika [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "–bantuan"]]; kemudian
    membantu
    fi

    Saya fikir ia harus ditulis ...
    jika [[-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "–membantu"]]; kemudian
    ...

    Masih banyak lagi yang dapat dijumpai dari BASH.
    Bolehkah anda menamakannya "ASAS"? 🙂
    Sebagai contoh, parameter 'penguji' seperti -z untuk melihat apakah ia kosong, atau -f untuk melihat apakah ia wujud sebagai fail.

    Terima kasih sekali lagi atas usaha anda.
    alberto

  11.   clow_eriol kata

    Tutorial skrip bash yang sangat baik!

  12.   OCZ kata

    -- PENGENALAN: UTF-8 --

    Ini pertama kalinya saya melihat garis untuk menetapkan pengekodan watak dalam skrip bash. Nampaknya lebih khas Python daripada Bash. Adakah ia benar-benar perlu? Saya telah mencari rujukan di Google tetapi saya tidak dapat menemui apa-apa, adakah anda mempunyai pautan yang membincangkan perkara ini? Terutama pada kesesuaian garis itu.

    Pada pendapat saya, untuk menulis skrip dalam Bash menggunakan UTF-8, anda hanya perlu menyimpan fail teks seperti itu (tanpa BOM) dan mempunyai pemboleh ubah persekitaran tertentu, (LANG dan LC_ *), diset dengan betul.
    Maka, tentu saja, perintah yang dilaksanakan perlu disediakan untuk pengekodan selain ASCII. Sebagai contoh, jika kita mahu pergi ke huruf besar, ini nampaknya tidak berfungsi:
    «Echo áéíóú | tr az AZ »
    o:
    «Echo áéíóú | tr [: bawah:] [: atas:] »
    dan lebih baik menggunakan:
    «Echo áéíóú | awk '{print toupper ($ 0)}' ».

    1.    Bukan daribrooklyn kata

      Mengenai "pengekodan»Telah disebutkan dalam blog ini sebelum ini:

      Bash: bagaimana membuat skrip boleh dilaksanakan
      Skrip utiliti pemasangan pasca

    2.    borriquito seperti anda kata

      Seseorang membetulkan saya, tetapi garis pengekodan (# -- PENGENALAN: UTF-8 --) Tidak ada hubungannya dengan bash atau shell: ini adalah baris komen (bermula dengan #) dan berfungsi untuk memberitahu EDITOR yang kami gunakan untuk menulis skrip (vim, emacs ...) pengekodan fail.

      Sebenarnya, bash tidak melihat garis seperti itu, kerana itu adalah baris komen.

  13.   JoRgE-1987 kata

    Tutorial yang sangat baik, kerana Sysadmin mengetahui Skrip dalam Bash sangat penting, ia berguna untuk semuanya.

    Sangat sangat baik!

    Salam!

  14.   Edward Cuomo kata

    Sekiranya ia berguna untuk sesiapa sahaja, berikut adalah beberapa kegunaan dan contoh untuk membuat Skrip anda sendiri: https://github.com/reduardo7/hsabx

  15.   Lito Hitam kata

    Sangat bagus. Perkara baru untuk ditambahkan pada skrip saya. Perkara encodig dan printf tidak memilikinya.
    Terima kasih!!!

  16.   xxxtonixxx kata

    Sooo artikel yang bagus! Saya menyimpan ini untuk kegemaran, ada baiknya membetulkan apa yang salah dan bahkan mengembangkannya dengan lebih banyak kandungan. Tepuk tangan untuk semua maklumat ini !!!!