Pengehosan Dalam Talian Percuma untuk Workstation

<Sebelum | Contents [show] | Seterusnya>

untuk: Bentuk Cangkang Tradisional

Asal khususnya sintaks arahan ialah:

khususnya berubah-ubah [dalam perkataan]; buat

arahan

dilakukan

Lokasi berubah-ubah ialah nama pembolehubah yang akan meningkat semasa pelaksanaan gelung, perkataan ialah senarai pilihan item yang akan diberikan secara berurutan berubah-ubah, dan arahan adalah arahan yang akan dilaksanakan pada setiap lelaran gelung.

. khususnya arahan berguna pada baris arahan. Kami boleh menunjukkan cara ia berfungsi dengan mudah:



[saya@linuxbox ~]$ untuk i dalam ABCD; lakukan echo $i; selesai

ABCD

[saya@linuxbox ~]$ untuk i dalam ABCD; lakukan echo $i; selesai

ABCD


Dalam contoh ini, khususnya diberikan senarai empat perkataan: “A”, “B”, “C”, dan “D”. Dengan senarai empat perkataan, gelung dilaksanakan empat kali. Setiap kali gelung dilaksanakan, satu perkataan diberikan kepada pembolehubah i. Di dalam gelung, kami mempunyai echo arahan yang memaparkan nilai i untuk menunjukkan tugasan. Seperti dengan manakala and sehingga gelung, yang dilakukan kata kunci menutup gelung.


Ciri yang sangat berkuasa bagi khususnya ialah bilangan cara menarik yang boleh kita buat senarai perkataan. Contohnya, melalui pengembangan pendakap:



[saya@linuxbox ~]$ untuk i dalam {A..D}; lakukan echo $i; selesai

ABCD

[saya@linuxbox ~]$ untuk i dalam {A..D}; lakukan echo $i; selesai

ABCD


atau pengembangan nama laluan:



[saya@linuxbox ~]$ untuk i dalam distros*.txt; lakukan echo $i; selesai

distros-by-date.txt distros-dates.txt distros-key-names.txt distros-key-vernums.txt distros-names.txt distros.txt

distros-vernums.txt distros-versions.txt

[saya@linuxbox ~]$ untuk i dalam distros*.txt; lakukan echo $i; selesai

distros-by-date.txt distros-dates.txt distros-key-names.txt distros-key-vernums.txt distros-names.txt distros.txt

distros-vernums.txt distros-versions.txt


atau penggantian arahan:



#! / Bin / Bash

# perkataan terpanjang: cari rentetan terpanjang dalam fail manakala [[ -n $1 ]]; buat

jika [[ -r $1 ]]; maka max_word= max_len=0

untuk i dalam $(rentetan $1); lakukan len=$(echo -n $i | wc -c)

jika (( len > max_len )); maka max_len=$len max_word=$i

fi

dilakukan

echo "$1: '$max_word' ($max_len aksara)"

fi syif

dilakukan

#! / Bin / Bash

# perkataan terpanjang: cari rentetan terpanjang dalam fail manakala [[ -n $1 ]]; buat

jika [[ -r $1 ]]; maka max_word= max_len=0

untuk i dalam $(rentetan $1); lakukan len=$(echo -n $i | wc -c)

jika (( len > max_len )); maka max_len=$len max_word=$i

fi

dilakukan

echo "$1: '$max_word' ($max_len aksara)"

fi syif

dilakukan

untuk: Bentuk Cangkang Tradisional


Dalam contoh ini, kami mencari rentetan terpanjang yang ditemui dalam fail. Apabila diberikan satu atau lebih nama fail pada baris arahan, program ini menggunakan tali program (yang disertakan dalam pakej binutils GNU) untuk menjana senarai "perkataan" teks yang boleh dibaca dalam setiap fail. The khususnya gelung memproses setiap perkataan secara bergilir-gilir dan menentukan sama ada perkataan semasa adalah yang paling lama ditemui setakat ini. Apabila gelung selesai, perkataan terpanjang dipaparkan.

Jika pilihan in perkataan bahagian dari khususnya perintah ditinggalkan, khususnya lalai untuk memproses parameter kedudukan. Kami akan mengubah suai kami perkataan terpanjang skrip untuk menggunakan kaedah ini:



#! / Bin / Bash

# longest-word2: cari rentetan terpanjang dalam fail untuk i; buat

jika [[ -r $i ]]; maka max_word= max_len=0

untuk j dalam $(rentetan $i); lakukan len=$(echo -n $j | wc -c)

jika (( len > max_len )); maka max_len=$len max_word=$j

fi

dilakukan

echo "$i: '$max_word' ($max_len aksara)"

fi selesai

#! / Bin / Bash

# longest-word2: cari rentetan terpanjang dalam fail untuk i; buat

jika [[ -r $i ]]; maka max_word= max_len=0

untuk j dalam $(rentetan $i); lakukan len=$(echo -n $j | wc -c)

jika (( len > max_len )); maka max_len=$len max_word=$j

fi

dilakukan

echo "$i: '$max_word' ($max_len aksara)"

fi selesai


Seperti yang kita lihat, kita telah menukar gelung paling luar untuk digunakan khususnya Sebagai ganti manakala. Dengan meninggalkan senarai perkataan dalam khususnya arahan, parameter kedudukan digunakan sebagai ganti. Di dalam gelung, contoh pembolehubah sebelumnya i telah ditukar kepada pembolehubah j. Penggunaan peralihan juga telah dihapuskan.


Kenapa saya?

Anda mungkin perasan bahawa pembolehubah i telah dipilih untuk setiap satu khususnya contoh gelung di atas. kenapa? Tiada sebab tertentu sebenarnya, selain tradisi. Pembolehubah yang digunakan dengan khususnya boleh menjadi sebarang pembolehubah yang sah, tetapi i adalah yang paling biasa, diikuti oleh j and k.



Asas tradisi ini berasal dari bahasa pengaturcaraan Fortran. Dalam For-tran, pembolehubah tidak diisytiharkan bermula dengan huruf I, J, K, L, dan M ditaip secara automatik sebagai integer, manakala pembolehubah yang bermula dengan mana-mana huruf lain ditaip sebagai nyata (nombor dengan pecahan perpuluhan). Tingkah laku ini menyebabkan pengaturcara menggunakan pembolehubah I, J dan K untuk pembolehubah gelung, kerana ia kurang berfungsi untuk menggunakannya apabila pembolehubah sementara (sebagaimana pembolehubah gelung selalunya) diperlukan.

Ia juga membawa kepada tipu muslihat berasaskan Fortran berikut: "TUHAN adalah nyata, melainkan diisytiharkan integer."


Pengkomputeran Awan OS teratas di OnWorks: