kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Pengguna anonim
Question

Bash menulis ke file tanpa echo?

Sebagai latihan, apakah ada metode untuk mengalihkan string ke file tanpa echo? Saat ini saya menggunakan

echo "Hello world" > test.txt

Saya tahu tentang cat dan printf. Saya berpikir sesuatu seperti

> test.txt <<<"Hello world"

Tentu saja ini tidak bekerja, tetapi mungkin perintah yang serupa?

39 2012-07-01T03:27:33+00:00 3
Pemrograman
command-line
bash
io-redirection
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
 ormaaj
ormaaj
1 Juli 2012 в 4:01
2012-07-01T04:01:38+00:00
Lebih
Sumber
Sunting
#16573857

Ada terlalu banyak cara untuk mendiskusikannya yang mungkin tidak anda pedulikan. Anda dapat meretas tentu saja - strace bash, atau melakukan segala macam sihir hitam menjalankan Bash di gdb.

Anda sebenarnya memiliki dua contoh yang sangat berbeda di sana. &<<<<'string' sudah menulis string ke file. Jika ada yang bisa diterima selain printf, echo, dan cat, anda bisa menggunakan banyak perintah lain untuk berperilaku seperti cat (sed, awk, tee, dll).

$ cp /dev/stdin ./tmpfooblah <<<'hello world'; cat tmpfooblah
hello world

Atau neraka, tergantung pada bagaimana Anda mengkompilasi Bash.

$ enable -f /usr/lib/bash/print print; print 'hello world' >tmpfile

Jika Anda hanya ingin menggunakan string bash dan pengalihan, dalam bash murni, tanpa peretasan, dan tidak ada loadable, itu tidak mungkin. Namun, dalam ksh93, hal itu dimungkinkan.

 $ rm tmpfooblah; <<<'hello world' >tmpfooblah <##@(&!()); cat tmpfooblah
 hello world
 ormaaj
ormaaj
Jawaban edit 1 Juli 2012 в 4:20
3
0
 perickso
perickso
22 September 2012 в 2:29
2012-09-22T02:29:36+00:00
Lebih
Sumber
Sunting
#16573858

Cara untuk melakukan ini dalam bash adalah

zsh <<< < '> test << < "Hello World!"'

Ini adalah salah satu perbedaan menarik antara zsh dan bash: jika diberikan sebuah unchained > atau >>>, zsh memiliki akal sehat untuk menghubungkannya ke stdin, sementara bash tidak. Ini akan sangat berguna - jika itu hanya standar. Saya mencoba menggunakan ini untuk mengirim & menambahkan kunci ssh saya melalui ssh ke berkas authorized_keys jarak jauh, tetapi host jarak jauhnya adalah bash, tentu saja, dan diam-diam tidak melakukan apa-apa.

Dan itulah mengapa Anda sebaiknya menggunakan cat.

 eckes
eckes
Jawaban edit 22 September 2012 в 8:42
3
0
Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams
1 Juli 2012 в 3:36
2012-07-01T03:36:45+00:00
Lebih
Sumber
Sunting
#16573856

Hanya pengalihan yang tidak akan berhasil, karena tidak ada yang menghubungkan deskriptor file yang sekarang terbuka. Jadi tidak, tidak ada cara seperti ini.

2
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
ALEX EPRST
Terdaftar 15 jam yang lalu
2
Daniel Gogov
Terdaftar 1 minggu yang lalu
3
工藤 芳則
Terdaftar 2 minggu yang lalu
4
Ирина Беляева
Terdaftar 2 minggu yang lalu
5
Darya Arsenyeva
Terdaftar 3 minggu yang lalu
ES
ID
JA
KO
RU
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi