Saya pertama kali belajar bagaimana kode dalam C
bahasa, dan menggunakan
if ( code )
then
code
fi
membuatnya sangat sulit bagi saya untuk membaca kode saya (jangan tanya mengapa). Apakah ada pengganti then
?
Sesuatu seperti ini:
if ( code ) {
code
}
fi
shell-script
智障 的 人
sumber
sumber
Jawaban:
Tidak ada pengganti, tetapi Anda dapat menggunakan keduanya jika Anda benar-benar membutuhkan kawat gigi:
Itu menggunakan kelompok perintah yang secara eksplisit di-bracing sebagai bagian dari
then
blok. Perintah apa pun di kawat gigi hanya akan dieksekusi di shell saat inithen
berjalan, persis seolah-olah kawat gigi itu tidak ada.Saya tidak akan benar-benar merekomendasikan gaya ini secara umum atau untuk kode yang perlu dibaca orang lain, tetapi itu memberi Anda kawat gigi yang Anda inginkan, dan itu akan melakukan trik jika Anda menggunakan editor yang memerlukan blok yang diperkuat atau sesuatu seperti itu.
sumber
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- pada dasarnya, ketika Anda menggunakanbash
cukup, sintaks standar menjadi cukup akrab, sehingga tidak banyak masalah.Anda tampaknya akan mencari C shell (
csh
,tcsh
, dll ...). Ketahuilah bahwa para ahli merekomendasikan untuk tidak memprogram .Saya tidak yakin apakah bagian yang Anda anggap tidak menarik adalah fakta yang
then
ada di baris berikut? Jika demikian, pertimbangkan untuk menggunakan gaya berikut:Saya harus mengakui bahwa nama-nama pernyataan ejaan mundur seperti
fi
untukif
danesac
untukcase
(tetapi tidakelihw
untukwhile
!) Agak aneh. Tapi itu shell Bourne standar, sintaksis shell paling portabel yang dapat Anda gunakan.sumber
then
tidak menarik, hanya saja editor saya akan menyorot{}
pasangan yang sesuai , dan itu berguna ketika saya memiliki beberapa jenis kesalahan karena dengan begitu saya dapat dengan mudah melihat semuaif
pernyataan saya dan melihat apakah ada kesalahan. .vi
itu%
yang melompat ke kurung / kurung / kurung yang cocok. Saya bersimpati. Aku rinduvi
's%
perintah ketika pemrograman Python.Mungkin ini lebih mudah di mata:
Selain itu, biasakan saja. Gunakan idiom bahasa itu.
sumber
Berikut ini ada di dekat sana. Dan aneh.
Saya pribadi tidak pernah menyukai ...
... membentuk diri saya. Saya suka ketika kata-kata kontrol memimpin . Bagiku selalu terasa aneh bahwa
...;then
bentuk yang sama muncul.Ini hampir sepenuhnya berlawanan dengan permintaan Anda, tetapi itu cara lain untuk melakukannya. Anda juga dapat menangani setiap pengalihan yang diinginkan ke
fi
jalur sesuai kebutuhan dan akan diterapkan ke seluruh blok.sumber
if(...) {
, yaitu meninggalkan brace pembuka pada baris yang sama sepertiif
dalam bahasa C-like.if
perintah, bahkan jika pada baris berikutnya.;
delim dalam kasus itu. Itu sebabnya mereka melakukannya.:
shell builtin seperti ini, hanya sebaris kode bisa byte-bijaksana lebih dekat ke sintaks C, tidak boleh didorong dengan cara apa pun.Ini caranya:
setara dengan:
sumber
{...}
sekitarecho "found"
, dan kemudian Anda akan menuju ke arah yang benar.Saya selalu menggunakan:
Mungkin tidak persis seperti yang Anda inginkan, tetapi lebih seperti c.
sumber