Shell komut dosyasında bazı içeriğe sahip dosya oluşturma


20

Shell Scripting için biraz yeniyim ve betiğin içinde yeni bir dosya oluşturmak ve içerik eklemek ve sonra kapatmak istiyorum. Kullanıcıdan argüman almamalıdır. Yoldaki ve içerikteki her şey önceden tanımlanmıştır. Nasıl yapabilirim?

Yanıtlar:


24

Sadece çıkış yönlendirmesini kullanın. Örneğin

#!/bin/bash

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

>Tüm yazacak stdintarafından sağlanan stdoutbir echodosyaya outputfileburada.

Alternatif olarak, bunun için teeve bir boru da kullanabilirsiniz . Örneğin

echo "some file content" | tee outputfile

Örneklerden herhangi birinin var olanın üzerine yazacağını unutmayın outputfile.

Mevcut bir dosyaya eklemeniz gerekiyorsa >>, >veya yerine kullanın tee -a.

Bu satırda kullanıcı girişini kabul etmezseniz, burada hiçbir kullanıcı girişi davranışı değiştiremez.


Dosyalarının içinde satır kesicisi olmasını isteyenler için buraya bakın: stackoverflow.com/a/9741470/10512595
BelovedFool

18

Bence bir senaryoda yeni bir dosya oluşturmak için burada bir doc kullanmak daha üstün . Okunabilirliği teşvik ettiğine inandığım daha temiz görünüyor.

Örneğin:

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

"-"İçinde <<-olacak sekmeli girintiler için izin isteğe bağlıdır soyulmuş dosya oluşturulduğunda. Buradaki alıntılar "EOF", "burada doktor" un herhangi bir değişiklik yapmasını engelliyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.