Что означают -s и [[]] в условии if в bash?

Если вы видите его жирным или подчеркнутым, вы, вероятно, не сможете его искать, потому что то, что вы видите, визуализировано .

Например, если текст поступает с какой-либо отформатированной страницы справочника, он создается путем интерпретации зачеркнутых символов как

  • полужирный (когда каждый символ заменяется на обратный интервал и повторяется) или
  • подчеркнутый (когда каждый символ написано над подчеркиванием).

В разделе часто задаваемых вопросов пейджера меньше отмечается, что он интерпретирует жирный шрифт / подчеркивание. Он использует атрибуты видео терминала, чтобы показать фактический жирный шрифт / подчеркивание.

В процессе визуализации типичный пейджер, такой как less , делает вид, что он содержит только текст (полужирные / подчеркнутые части не являются текстом).

В текстовом редакторе вы можете искать шаблоны возврата. Возможно, какой-то конкретный редактор (например, emacs) имеет такую ​​возможность, т.е.е., выполните поиск текста (пока он отображается полужирным шрифтом / подчеркиванием), но с учетом жирного шрифта / подчеркивания как атрибута поиска.

Чтение backspaces менее приятно. Вот начало страницы руководства, указанной в вопросе:

       r^Hre^Hea^Had^Hd [-^H-e^Her^Hrs^Hs] [-^H-a^Ha _^Ha_^Hn_^Ha_^Hm_^He] [-^H>
       _^Hp_^Hr_^Ho_^Hm_^Hp_^Ht] [-^H-t^Ht _^Ht_^Hi_^Hm_^He_^Ho_^Hu_^Ht] [-^H-u>
              One  line  is  read  from  the  standard input, or from the file  
              descriptor _^Hf_^Hd supplied as an argument to the -^H-u^Hu optio>
              first word is assigned to the first _^Hn_^Ha_^Hm_^He, the second >
              second _^Hn_^Ha_^Hm_^He, and so on, with leftover words and their>
              ing  separators  assigned  to the last _^Hn_^Ha_^Hm_^He.  If ther>
              words read from the input stream than names, the remaining names

4
31.03.2017, 13:15
2 ответа

Тест -s возвращает истину, если

{{ 1}}

[...] если файл существует и имеет размер больше нуля

Это описано в руководстве bash , а также в руководстве для теста (тест также можно записать , если test -s file; затем ).

Для [...] и [[...]] см.: Bash - Если путаница в синтаксисе

15
27.01.2020, 20:47

-s ФАЙЛ: - ФАЙЛ существует и имеет размер больше нуля.

Часть [[...]] позволяет проверять условие с помощью операторов. Думайте об этом как об утверждении if. В вашем примере вы используете оператор -s , который проверяет, что указанный файл не пуст.

1
27.01.2020, 20:47

Теги

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