Экранный заголовок набора из сценария оболочки

Для большинства людей я беру интервью для положений Java-разработчика, маркированные блоки очень удивительны. Вот пример:

// code goes here

getmeout:{
    for (int i = 0; i < N; ++i) {
        for (int j = i; j < N; ++j) {
            for (int k = j; k < N; ++k) {
                //do something here
                break getmeout;
            }
        }
    }
}

то, Кто сказал goto в Java, является просто ключевым словом?:)

49
задан tripleee 14 November 2018 в 03:17
поделиться

3 ответа

Вы можете установить заголовок экрана / xterm, используя следующие строки:

#!/bin/bash

mytitle="Some title"
echo -e '\033k'$mytitle'\033\\'

[ОБНОВЛЕНИЕ] - по запросу я также включаю решение, предложенное @Espo ниже:

В зависимости от вашей версии xterm или вашего дистрибутива Linux строка выше может работать или не работать, и вы можете попробовать xterm-defaults :

#!/bin/bash

mytitle="Some title"
echo -e '\033]2;'$mytitle'\007'

Подробнее см.: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#s3 или обратитесь к ответу @Espo ниже.

52
ответ дан 7 November 2019 в 11:34
поделиться

Из http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#s3

escape-последовательности xterm

Заголовки окон и значков может быть изменен в работающем xterm с помощью XTerm escape-последовательности. Последующий В этом отношении полезны последовательности:

  • ESC] 0; stringBEL - Установить имя значка и заголовок окна на строку
  • ESC] 1; stringBEL - Установить имя значка на строку
  • ESC ] 2; stringBEL - Установить заголовок окна на строку

, где ESC - это escape-символ (\ 033), а BEL - символ звонка (\ 007).

Печать одной из этих последовательностей в xterm вызовет окно или название значка необходимо изменить.

Примечание: эти последовательности применимы к большинству производные xterm, такие как nxterm, color-xterm и rxvt. Другой терминал типы часто используют разные escape-последовательности; видеть приложение для примеров. Для полный список escape-последовательностей xterm см. файл ctlseq2.txt, который идет с распределением xterm, или xterm.seq, который поставляется с rxvt распределение.

Печать управляющих последовательностей

Для постоянной информации на протяжении всего срока службы этой оболочки, такие как хост и имя пользователя, он будет достаточно просто повторить побег строка в rc-файле оболочки:

  echo -n "\ 033] 0; $ {USER} @ $ {HOST} \ 007"

должен содержать заголовок вроде имя пользователя @ имя хоста , предполагая оболочку переменные $ USER и $ HOST установлены правильно. Необходимые параметры для эхо может различаться в зависимости от оболочки (см. примеры ниже).

Информация, которая может измениться во время время жизни оболочки, например, текущий рабочий каталог, эти экраны действительно нужно применять каждый раз подсказка изменится. Таким образом строка обновляется с каждой командой вы выпускаете и можете отслеживать информация, такая как текущая работа каталог, имя пользователя, имя хоста и т. д. Некоторые оболочки предоставляют специальные функции для этого некоторые не делают, и мы необходимо вставить последовательности заголовков прямо в строку приглашения. Эта рассматривается в следующем разделе.

19
ответ дан 7 November 2019 в 11:34
поделиться
set_screen_title ()
{
    echo -ne "\ek$1\e\\"
}
7
ответ дан 7 November 2019 в 11:34
поделиться
Другие вопросы по тегам:

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