Вы можете сделать это одним вызовом sed, например.
$ echo "Mon Apr 22 05:06:00 UTC 2019" | sed 's/ \(UTC \)\?/,/g'
Mon,Apr,22,05:06:00,2019
Вероятно, просто опечатка:COMP_WORD
не используется в Bash (или, по крайней мере, я не могу найти ее в руководстве ). Вместо этого вы должны были написать COMP_WORDS
.
В вашем коде и cur
, и prev
всегда пусты, потому что ${COMP_WORD[COMP_CWORD]}
и ${COMP_WORD[COMP_CWORD-1]}
относятся к неопределенной переменной. И compgen
, правильно, всегда возвращает все значения опции, которые соответствуют пустому cur
.