Terdapat banyak cara untuk membaca dan menulis fail dalam bash. Cara paling mudah adalah menggunakan operator> dan >>.
- > operator akan menimpa data yang ada
- >> operator akan menambahkan data
Format umum penggunaan pengendali pengalihan adalah:
Data> Nama Fail
Data >> Nama Fail
Mari kita fahami prosedur penulisan fail dengan contoh:
Cara menulis fail menggunakan pengendali pengalihan
Seperti yang dibincangkan di atas, pendekatan menulis dan fail yang mudah dan mudah adalah menggunakan pengendali pengalihan. Contohnya, jika anda ingin mengubah teks fail yang sudah ada, pertama-tama buat fail teks dengan nama testfile.txt dan tulis apa sahaja di dalamnya:
Simpan fail teks.
Taipkan arahan yang disebutkan di bawah di terminal:
$ echo Menimpa teks yang ada dalam fail> testfile.txt
Pergelangan tangan yang berlebihan mungkin berisiko; oleh itu, adalah amalan yang baik untuk mengaktifkan noclobber. Menetapkan noclobber akan menyekat sebarang penimpaan ke mana-mana fail yang keluar.
$ set –o noclobber$ echo Menimpa teks yang ada dalam fail> testfile.txt
Tetapi jika anda ingin memintas noclobber maka gunakan > | pengendali dan bukannya > :
$ echo Menimpa teks yang ada dalam fail> | testfile.txtAtau anda hanya boleh melumpuhkan noclobber:
$ set + atau noclobber
Tetapi perintah ini akan menghilangkan perlindungan dari semua fail.
Output di atas menunjukkan bahawa teks yang ada telah ditimpa. Sekarang, mari kita gunakan >> pengendali:
$ echo Menambah teks ke fail teks yang ada >> testfile.txt
membuang tidak selalu sesuai digunakan kerana anda tidak dapat memformat teks menggunakannya, oleh itu gunakan printf di tempat gema untuk memformat teks seperti yang ditunjukkan dalam perintah berikut:
$ printf Selamat Datang n Ini adalah fail teks baru. > newtestfile.txt
Mari kita fahami konsep dengan contoh skrip bash. Buka Vim dengan menaip vim di terminal. Sekiranya anda tidak mempunyai editor Vim pada peranti anda, pasang dengan menggunakan:
$ sudo apt pasang vimTaipkan skrip:
#! / bin / bashecho Masukkan nama anda
baca nama
gema $ name> data_dir.txt
echo Masukkan usia anda
zaman membaca
echo $ age >> data_dir.txt
data kucing_dir.txt
The kucing arahan digunakan untuk membuat dan menyunting fail. Simpan skrip di atas dalam Vim dengan menukar mod setelah menekan Esc kekunci dan kemudian taip : dalam myscript.sh . Buka terminal dan jalankan kodnya:
Cara menulis fail menggunakan Heredoc
Sekiranya anda ingin menulis beberapa baris, maka kaedah paling mudah adalah menggunakan Heredoc. Di sini dokumen, juga dikenali sebagai Heredoc, adalah blok kod pelbagai guna. Sintaks Heredoc adalah:
Perintah<<[-] Delimiter.
teks / arahan
.
Pembatas
String apa pun boleh digunakan di tempat Delimiter, dan - juga dapat digunakan untuk menghapus ruang tab di file. Mari kita fahami dengan menggunakan contoh mudah:
#! / bin / bashkucing<< TEXTFILE
Ini adalah fail teks.
Fail ini dibuat menggunakan heredoc.
TEKS TEKS
Perintah kucing skrip di atas membuat fail teks dengan nama TEXTFILE, dan menulis teks ke dalam fail yang baru dibuat. Sekarang simpan fail dengan nama myscript.sh . Lancarkan terminal dan jalankan skrip.
Cara menulis fail menggunakan arahan Tee
Kaedah lain untuk menulis fail adalah menggunakan perintah Tee. Sebagai nama yang menunjukkan perintah ini mengambil input dan menulis ke fail dan menunjukkan output secara serentak. Secara lalai, perintah Tee akan menimpa data yang ada.
$ echo Ini adalah beberapa teks | tee textfile.txt
Untuk menambahkan penggunaan –a:
$ echo Ini teks lain | tee –a textfile.txt
Untuk menulis beberapa baris, gunakan:
$ echo Menambah teks ke pelbagai fail | tee textfile1.txt textfile2.txt textfile3.txt
Perintah di atas akan membuat tiga fail jika tidak ada dan menulis teks kepada masing-masing.
Kesimpulannya
Panduan ini memfokuskan kepada pelbagai pendekatan untuk menulis ke fail dalam bash dengan contoh. Dalam skrip bash, terdapat banyak cara untuk menulis fail, tetapi yang paling mudah adalah menggunakan operator pengalihan>, >>. Untuk menulis beberapa baris, heredoc dapat digunakan, dan jika anda ingin menulis data yang sama ke beberapa baris, maka perintah tee cukup berguna.