Saya memiliki skrip ksh yang harus bekerja pada linux dan solaris. Saya mencoba untuk mewarnai keluaran dari perintah tertentu. Ini bekerja di linux (khususnya RHEL6), tetapi tidak pada solaris (SunOS 5.10).
Perintah di linux (output "test" benar-benar berwarna merah):
[amartin@linuxbox:~]$ echo "test" | sed 's,.*,\x1B[31m&\x1B[0m,'
test
Command on solaris (output "test" tidak berwarna):
[amartin@sunbox:~]$ echo "test" | sed 's,.*,\x1B[31m&\x1B[0m,'
x1B[31mtestx1B[0m
Apakah ada cara untuk membuat perintah ini sehingga outputnya merah, tanpa kode mentah di output? Saya tidak dapat mengubah perintah 'echo' karena itu hanya isian untuk perintah yang sebenarnya saya jalankan.
cat |sed
terlalu thx!Akan lebih mudah digunakan
tput
atau
Ini menetapkan foreground menjadi merah, menjalankan
somecommand
yang kemudian akan menampilkan output dalam warna merah kemudian membersihkan urutan warna. Setidaknya ini berfungsi denganbash
,zsh
danksh
.Lihat
tmux(1)
danterminfo(5)
untuk informasi lebih lanjut tentang apa yang dapat Anda lakukantput
.sumber
Beberapa terminal (seperti bash di iterm untuk saya) memungkinkan Anda untuk menekan tombol "ctrl-v" diikuti oleh "ctrl + [" dan itu akan menempatkan karakter escape literal ke dalam string input. Jika berhasil, Anda mungkin akan melihat karakter "^ [" dicetak di layar, tetapi jika Anda memindahkan kursor di sekitarnya, itu akan memperlakukannya sebagai satu karakter karena itu benar-benar di belakang layar.
Untuk memahami apa yang terjadi (dan untuk menguji apakah ini mungkin), Anda dapat mengetikkan ctrl + v diikuti oleh ctrl + i. Anda akan melihat bahwa karakter tab telah dimasukkan ke string prompt Anda. Ada riwayat CS untuk alasan ini: tetapi ternyata keyboard yang sangat lama memiliki ctrl + I hard wired untuk mengirim karakter tab; dan tombol tab mengirim sinyal listrik yang sama juga.
Untuk alasan warisan itu, bash untuk banyak terminal masih menginterpretasikan kode ctrl tertentu untuk memetakan ke karakter yang sama.
Ctrl + I memetakan ke karakter tab, dan ctrl + [terjadi untuk mencocokkan dengan karakter melarikan diri ascii.
sumber