El comportamiento es que deja de analizar la línea de comando y deja el resto de los argumentos como están. El --
en sí mismo se elimina (o más bien $OPTIND
indicará que se procesó, pero $opt
en el código siguiente nunca será -
, y si shift "$(( OPTIND - 1 ))"
como se hace habitualmente, nunca lo veas ).
Ejemplo:
#!/bin/bash
while getopts 'a:b:' opt; do
case "$opt" in
a) printf 'Got a: "%s"\n' "$OPTARG" ;;
b) printf 'Got b: "%s"\n' "$OPTARG" ;;
*) echo 'error' >&2
exit 1
esac
done
shift "$(( OPTIND - 1 ))"
printf 'Other argument: "%s"\n' "$@"
Ejecutarlo:
$ bash script.sh -a hello -- -b world
Got a: "hello"
Other argument: "-b"
Other argument: "world"
Como puede ver, getopts
no procesó el bit -b world
de la línea de comando.
Deja de analizar la línea de comando en --
o en el primer argumento de opción no -:
$ bash script.sh something -a hello -- -b world
Other argument: "something"
Other argument: "-a"
Other argument: "hello"
Other argument: "--"
Other argument: "-b"
Other argument: "world"
En este caso, --
no fue "eliminado" ya que getopts
nunca llegó tan lejos.
короткое: нет
длинное: (на самом деле я мог бы предоставить подробный ответ...)
Вы могли бы сделать это, но это не сработает:
Консоль Linux (без некоторой работы с привязками клавиш) не будет соответствовать xterm.
цвета не будут совпадать
описание терминала (в дополнение к цветам и функциональным клавишам) не будет совпадать - infocmp
показывает мне более 40 отличий кроме тех.
Консоль Linux поддерживает 16 цветов и имеет возможность делать что-то правдоподобное с последовательностями из 256 цветов. Но он неполный (даже с ограничением в 16 цветов), так как палитра не программируется. Вот скриншот моего Debian/тестовой машины для иллюстрации:
С теми же скриптами, используя xterm, вы можете видеть, что xterm обновляет палитру для 88-цветного скрипта (из-за чего 256-цветный вывод выглядит странно...) . Даже без этого (поскольку Linux ничего не меняет), рендеринг консоли Linux из 256-цветной палитры — это не то, что вы имели в виду:
Как я указал в связанном вопросе (256 цветов в console (tty)), приложив некоторые усилия, можно заставить fbterm
работать, фактически заменив собой консоль Linux. Но fbterm
не будет работать с TERM=xterm-256color
.