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 kealwaysatau bisa menjadineveratauauto.
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 .