Он называется pipe (или pipeline), и это означает, что вывод команды перед ним производится как вход в команду за ним.
Пример: [ ! d1]
dmesg | tail
bash --version | tac
Вы можете попробовать выполнить команду без канала.
И да, вы правы: в этом случае команда xdpyinfo показывает информацию, и она анализируется на . grep фильтрует результаты и отображает только строки, в которых есть resolution.
Дополнительная информация о pipe:
https://stackoverflow.com/questions/1072125 / how-do-piping-work-in-linux http://www.linfo.org/pipes.html http://linuxtutorial.info/modules.php?name=MContent&pageid=21 https: // обходной путь. org / linuxtip / pipes http://en.wikipedia.org/wiki/Pipeline_%28Unix%29См. man bash, и вы можете делать такие вещи, как:
-a file
True if file exists.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-u file
True if file exists and its set-user-id bit is set.
-x file
True if file exists and is executable.
-L file
True if file exists and is a symbolic link.
и многие, многие другие.
Вы также можете посмотреть «внутри» файла командой file (см. man file), чтобы получить дополнительную информацию.
Вместо синтаксического анализа вывода ls ( что всегда приводит к возможной путанице), следует использовать /usr/bin/stat -c "%a %n" filename:
$ stat -c "%a %n" .bashrc
700 .bashrc