Что делает “ [[$ -! = * I *]] & amp; & amp; & amp; вернуться и Rdquo; имею в виду?

Я запускаю 14.04 LTS со стандартной клавиатурой США. Моя проблема заключалась в том, что я полагался на установщика, чтобы выбрать для меня US-Intl, и это вызвало «мертвые ключи» и неправильное формирование «и» ключей (как и других, о которых я не знаю, я уверен) .

После множества разочарований и проб и ошибок я запустил предложение «sudo apt-get install console-common», и он исправил мою проблему, но только во время моего входа в систему.

Когда я

Он выполнялся только постоянно, когда я выполнил команду «sudo dpkg-reconfigure keyboard-configuration» и задал общую клавиатуру США.

". setxkbmap "не работает для меня.

Кажется, что (я не знаю) setxkbmap устарел в 14.04 LTS.

1
задан 25 September 2016 в 19:17

2 ответа

В основном это означает: «Если флаги оболочки не содержат нижний регистр i, тогда остановите здесь функцию / скрипт».

[[ ]]

обозначает условное выражение в bash

$-

означает флаги оболочки. Он будет содержать «i», если оболочка является интерактивной (т. Е. Вы можете вводить команды, а не выполнять скрипт)

!=

просто означает «не равно».

*i*

- шаблон подстановки, который соответствует любому, содержащему «i»

return

без каких-либо аргументов, просто означает прекратить выполнение текущей функции или скрипта.

&&

является логическим оператором И. Выражение справа, в данном случае return, будет оцениваться (исполняется) только в том случае, если выражение слева имеет значение true. Таким образом, во многих языках программирования a && b является сокращением для if a then b - это называется «оценка короткого замыкания», и это приводит к тому, что учителя программирования сходят с ума, когда вы его используете: D

6
ответ дан 23 May 2018 в 05:49

Я бы предположил, что это похоже на то, что если bash не открыт в интерактивной оболочке, тогда ничего не делайте.

Я не знаю всей функции, но, вероятно, есть команды и флаги, установленные ниже этой строки, в случае, если вы открыли bash в TTY.

2
ответ дан 23 May 2018 в 05:49
  • 1
    спасибо :), но я с нетерпением жду, что именно $- и *i*, и как он узнает, является ли его интерактивный режим или нет – Severus Tux 24 September 2016 в 16:22
  • 2
    unix.stackexchange.com/questions/257571/&hellip – TheWanderer 24 September 2016 в 16:24

Другие вопросы по тегам:

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