Apa perilaku warna default untuk grep --color
jika tidak [=KAPAN ] ditentukan?
Halaman manual grep menyatakan:
--color
[=KAPAN ],--color
[=KAPAN ]Mengelilingi string yang cocok (tidak kosong), baris yang cocok, baris konteks,
nama file, nomor baris, offset byte, dan pemisah (untuk bidang dan
grup baris konteks) dengan urutan escape untuk menampilkannya dalam warna
di terminal.
…
KAPAN adalahnever
,always
, atauauto
.
Apakah default [=KAPAN ] untuk grep --color
menjadi:
grep --color=auto
atau
grep --color=always
atau apakah itu tergantung pada implementasi dan platform?
Dalam pengujian saya di Ubuntu 14.04 dengan GNU grep 2.16:
echo "foo bar" | grep --color foo
menghasilkan foo
bar
, sedangkan
echo "foo bar" | grep --color foo | grep --color bar
menghasilkan foo
bar
, sehingga tampaknya grep --color=auto
berlaku di sini. Saya belum menguji ini pada Windows atau Mac, namun; Saya tidak tahu apakah perilaku ini bersifat universal.
Default ini untuk [=WHEN ] sedikit berbeda dari ls --color
di mana halaman manual untuk ls
menyatakan:
--color
[=KAPAN ]mewarnai output.
KAPAN default kealways
atau bisa menjadinever
atauauto
.
Di sini, perilaku KAPAN missing yang hilang eksplisit.
Jawaban yang Diterima:
Defaultnya adalah auto
.
grep --color
sama dengan menulis --color=auto
.
Ini tampaknya kurang didokumentasikan, atau mereka menganggap --color
simple yang sederhana usang, tetapi itu dapat dilihat dari pengujian dan dari kode sumbernya:
case COLOR_OPTION:
if (optarg)
{
if (!strcasecmp (optarg, "always") || !strcasecmp (optarg, "yes")
|| !strcasecmp (optarg, "force"))
color_option = 1;
else if (!strcasecmp (optarg, "never") || !strcasecmp (optarg, "no")
|| !strcasecmp (optarg, "none"))
color_option = 0;
else if (!strcasecmp (optarg, "auto") || !strcasecmp (optarg, "tty")
|| !strcasecmp (optarg, "if-tty"))
color_option = 2;
else
show_help = 1;
}
else
color_option = 2;
break;
Perhatikan bahwa tidak adanya optarg
hasilnya sama dengan yang sama dengan auto
atau tty
.