Командная строка переключается на>, на что это указывает?

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

#! /bin/bash
files=(file1 file2 file3)
for i in "${files[@]}"; do grep -E "MY PATTERN" < "$i" > matches-"$i"; done
3
13.01.2014, 14:55
2 ответа

Согласно спецификации POSIX для Командного языка Shell, если новая строка следует за символом обратной косой черты (\), оболочка должна интерпретировать это как продолжение строки, т.е. оболочка интерпретирует следующую строку, как будто это была бы часть первого. Это - исключение к обычному значению \, который является Escape следующий символ, сохраняя его литеральное значение. > указывает, что вход будут рассматривать как таковой продолжение строки.

Это также происходит с несбалансированными одинарными или двойными кавычками (', "), которые сохраняют литеральное значение каждого символа в кавычках (за некоторыми исключениями относительно "). В этом случае новая строка между кавычками интерпретируется как часть входа и не инициирует парсинг командной строки.

4
27.01.2020, 21:14
  • 1
    Это также покажет для неполных условных операторов и инструкций циклов. –  casey 13.01.2014, 15:19

Это $PS2 или подсказка второго уровня, которая указывает на продолжение предыдущей строки (строк). Это также показывает, разбалансировали ли Вы одинарные или двойные кавычки.

2
27.01.2020, 21:14

Теги

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