Membuat file dengan beberapa konten dalam skrip Shell


20

Saya sedikit baru dengan Shell Scripting dan saya ingin membuat file baru di dalam skrip dan ingin menambahkan konten dan kemudian menutupnya. Seharusnya tidak mengambil argumen dari pengguna. Segala sesuatu dari jalur dan konten sudah ditentukan sebelumnya. Bagaimana saya bisa melakukannya?

Jawaban:


24

Cukup gunakan redirection output. Misalnya

#!/bin/bash

echo "some file content" > /path/to/outputfile

The >akan menulis semua stdinyang disediakan oleh stdoutdari echoke file outputfiledi sini.

Atau, Anda juga bisa menggunakan teedan pipa untuk ini. Misalnya

echo "some file content" | tee outputfile

Ketahuilah bahwa salah satu contoh akan menimpa yang sudah ada outputfile.

Jika Anda perlu menambahkan file yang ada saat ini, gunakan >>sebagai ganti >atau tee -a.

Jika Anda tidak menerima input pengguna di baris ini, tidak ada input pengguna yang dapat mengubah perilaku di sini.


Untuk orang-orang yang ingin memiliki pemecah baris di dalam file mereka, lihat di sini: stackoverflow.com/a/9741470/10512595
BelovedFool

18

Saya pikir lebih baik menggunakan doc di sini untuk membuat file baru dalam skrip. Ini terlihat lebih bersih, yang saya percaya mendorong keterbacaan.

Sebagai contoh:

cat > filename <<- "EOF"
file contents
more contents
EOF

The "-"dalam <<-adalah opsional, memungkinkan untuk indentasi tab yang akan dilucuti ketika file tersebut dibuat. Kutipan di sekitar "EOF"mencegah "di sini doc" dari melakukan penggantian.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.