Tujuan saya adalah untuk mencatat semua output dari skrip ke direktori yang akan dibuat skrip.
Sebagai contoh, saya punya:
~/.abc.sh
:
#! /bin/bash
rails new myapp
Ketika saya berlari ...
cd ~/code
. ~/.abc.sh
... yang akan membuat aplikasi Rails baru di direktori ~/code/myapp
.
Ketika Rails membuat aplikasi, ia mengeluarkan banyak teks yang ingin saya tangkap dan simpan dalam file log di direktori yang sama dengan rails
perintah yang baru dibuat. Saya juga ingin menampilkan teks itu di terminal juga.
Bagaimana cara saya melakukan ini?
~/.abc.sh | tee <file>
? Jika demikian, maka masalahnya adalah saya tidak tahu di direktori mana skrip akan membuat aplikasi ketika saya menyebutnya, jadi bagaimana saya tahu apa yang harus diberikan dalamfile
argumen? (Terima kasih atas contoh-contohnya)mktemp
. Lihat halaman manualman mktemp
.script
akan memulai sesi interaktif dan mencatat semua output (stdout / stderr dll) ke file, atau (dengan-c
parameter) akan menjalankan perintah dan mencatat outputnya.Catatan: dalam sesi interaktif, Anda dapat berhenti merekam hanya dengan keluar dari sesi seperti biasa (misalnya
exit
atau Ctrl-D).Untuk merekam sesi dengan pemutaran video, Anda juga dapat mencoba asciinema .
sumber