Дистрибутивы, которые при запуске без графического интерфейса имеют значение по умолчанию TERM = xterm-256color [закрыто]

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 $OPTINDindicará que se procesó, pero $opten 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, getoptsno procesó el bit -b worldde 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 getoptsnunca llegó tan lejos.

0
10.12.2018, 04:59
1 ответ

короткое: нет

длинное: (на самом деле я мог бы предоставить подробный ответ...)

Вы могли бы сделать это, но это не сработает:

  • Консоль Linux (без некоторой работы с привязками клавиш) не будет соответствовать xterm.

  • цвета не будут совпадать

  • описание терминала (в дополнение к цветам и функциональным клавишам) не будет совпадать - infocmp показывает мне более 40 отличий кроме тех.

Консоль Linux поддерживает 16 цветов и имеет возможность делать что-то правдоподобное с последовательностями из 256 цветов. Но он неполный (даже с ограничением в 16 цветов), так как палитра не программируется. Вот скриншот моего Debian/тестовой машины для иллюстрации:

Linux console attempting to show 256- and 88-color palettes

С теми же скриптами, используя xterm, вы можете видеть, что xterm обновляет палитру для 88-цветного скрипта (из-за чего 256-цветный вывод выглядит странно...) . Даже без этого (поскольку Linux ничего не меняет), рендеринг консоли Linux из 256-цветной палитры — это не то, что вы имели в виду:

xterm showing 256- and 88-color palettes

Как я указал в связанном вопросе (256 цветов в console (tty)), приложив некоторые усилия, можно заставить fbterm работать, фактически заменив собой консоль Linux. Но fbterm не будет работать с TERM=xterm-256color.

2
29.04.2021, 00:04

Теги

Похожие вопросы