Saya telah menggunakan tcsh
untuk waktu yang lama sekarang. Tetapi setiap kali saya mencari sesuatu, saya sering menemukan bahwa metode yang ditentukan bash
spesifik. Bahkan sintaks untuk skrip shell berbeda untuk keduanya.
Dari apa yang saya alami mencari dan belajar di internet, bash
nampaknya shell yang lebih umum digunakan. Bahkan jumlah pertanyaan di situs yang ditandai bash
ini jauh lebih banyak (lima kali lebih banyak saat ini) daripada jumlah pertanyaan yang ditandai tcsh
.
Jadi, saya bertanya-tanya apakah saya harus beralih ke bash. Apa yang kamu pikirkan?
Mengapa saya harus berpegang teguh pada tcsh
ATAU mengapa saya harus pindah ke bash
?
zsh
(yang seharusnya diganti oleh OS X)dash
itu harus bekerja pada apa saja.zsh
. Pada saat yang sama itu tidak lucu karena tidak benar-benar menjawab pertanyaan ops. itulah sebabnya saya membuat tanggapan zsh saya sebagai komentar, bukan jawaban. Terus terang, kecuali jika Anda kesulitan mempelajari cara membuat shell script tcsh, ikuti apa yang Anda ketahui. Jika Anda memiliki masalah menggunakantcsh
posting masalah Anda di sini. Jangan beralih hanya karena . Ada lebih banyak postingan bash karena diinstal secara default di lebih banyak tempat, itu tidak membuatnya lebih baik.Jawaban:
Setelah mempelajari bash, saya menemukan bahwa tcsh sedikit mundur. Misalnya apa yang bisa saya lakukan dengan mudah di bash, saya merasa sulit melakukannya di tcsh. Pertanyaan saya di tcsh . Dukungan dan dokumentasi Internet juga jauh lebih baik untuk bash dan sangat terbatas untuk tcsh. Jumlah buku O'Reilly tentang bash sangat bagus, tetapi saya belum menemukan yang serupa dengan tcsh.
sumber
Sebenarnya, Anda harus pindah ke
zsh
! Ini pada dasarnya kompatibel ke belakang dan memiliki semua kegunaanbash
dengan bantuan besar keangkeran . Bahkan ada buku (meskipun saya belum sempat membacanya).Saya akan mengakui satu alasan untuk tidak menggunakan
zsh
lebih daribash
tetapi kecuali Anda terus bekerja di beberapa instalasi baru itu tidak benar-benar berlaku. Terutama jika Anda tahu tentang yang paling signifikan perbedaan . Namun ini benar-benar mirip dengan perbedaan antaravim
danvi
; Anda tidak ingin menjadi naif tetapi praktis itu bukan masalah besar. Bahkanvim
pengguna hardcore dapat menemukan jalan merekaemacs
dan sebaliknya.sumber
Anda harus beralih ke shell yang sesuai dengan POSIX http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html , seperti salah satu dari bash, ksh, dash, tetapi tidak zsh dan tentu saja bukan tsh. Sudah lama sejak csh dinyatakan sebagai pilihan yang buruk untuk skrip: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh tidak jauh berbeda di area itu.
Saat menulis skrip, pastikan untuk menggunakan konstruksi POSIX saja (mis. Hindari bashism dan sejenisnya) jika Anda tidak ingin dikunci lagi dalam sesuatu yang tidak portabel.
sumber
Obsesi kompatibilitas tidak ada gunanya, saya pikir. Jika Anda mencoba membuat semuanya kompatibel dengan menempatkan
#!/bin/sh
di bagian atas dan menggunakan ekstensi .sh , tetapi tidak pernah menguji apa pun kecuali bash , Anda belum menjamin skrip yang kompatibel! Lebih baik gunakan saja#!/bin/bash
dan .bash agar pengguna benar-benar mengetahui kebutuhan sebenarnya.Jika Anda tahu zsh , tcsh , atau sesuatu yang lebih baik daripada bash , dan memiliki manual referensi yang bagus untuk itu, jangan menahan diri . Seperti halnya orang yang mengharapkan untuk menginstal perl atau python untuk dapat menjalankan beberapa skrip, mereka juga dapat menangani menginstal shell Anda yang tidak jelas! : D
sumber
/bin/sh
dijamin untuk menunjuk ke shell yang kompatibel dengan korn sementara tcsh adalah shell yang diturunkan dari csh. Kemungkinan/bin/sh
sudah menunjuk ke bash atau shell lain yang kompatibel dan hampir pasti tidak akan terpengaruh oleh perubahan shell pengguna . csh dan sh sama sekali tidak kompatibel.dash
(ash
Shell kompatibel dengan Debian dan Bourne).#!/bin/sh
saja-ne
. Namun, khawatir tentang kompatibilitas POSIX tidak boleh menjadi jenis pertimbangan yang berlabel 'terobsesi'. Memintash
dasbor default dengan debian / ubuntu, dan sudah cukup lama sekarang. Saya tahu itu tidak akan memenuhi syarat sebagai 'dijamin', tetapi jarang saya menganggap portabilitas apa pun 'dijamin'. Saya bahkan akan lebih dicadangkan dengan 'skrip shell'.Shell yang mana? Pilih yang dengan rasio "kemudahan penggunaan" vs "kerepotan" terbaik ...
Jika Anda tidak dapat menemukan contoh umum dan penjelasan yang cukup untuk shell "Maserati" Anda, maka kinerja ekstra mungkin lebih merupakan masalah daripada bonus ...
Saya menemukan artikel / situs ini menarik; mungkin layak dibaca:
perbedaan shell UNIX dan cara mengganti shell Anda
sumber
zsh mungkin memiliki beberapa kemiripan dengan tcsh daripada bash.
Lihat: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13
Orang-orang sering mengklaim bahwa zsh dapat melakukan hal-hal yang tidak dapat dilakukan oleh bash, tetapi saya belum menemukan itu yang menjadi masalahnya. Apa yang saya telah melihat adalah bahwa untuk zsh lebih mudah, dibangun di atau diaktifkan secara default, sementara di bash itu adalah sebuah script addon, harus dihidupkan, atau lebih sulit.
(penafian: Saya pengguna bash yang terkadang mempertimbangkan untuk beralih ke zsh)
sumber
Untuk beberapa alasan, saya menggunakan tcsh, seperti yang saya gunakan 20 tahun lalu. Seperti yang saya tahu bash berasal dari sh tetapi tentu saja dengan banyak hal csh tetapi tcsh berasal dari csh. Saya sangat suka penyelesaian perintah di hari-hari awal tetapi tersedia di sebagian besar shell sekarang. Untuk skrip, haruskah kita tetap menggunakan / bin / sh?
sumber