Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   перечисление команд (http://forum.oszone.net/showthread.php?t=310060)

Костя_Лу@vk 07-01-2016 19:02 2592125

перечисление команд
 
на сайтах часто пишут несколько команд разделяя вертикальной чертой |
но в терминале (linux mint) ругается на эту черту.
какие команды можно выполнять через черту и какие с помощью && и в чем разница?

ruslandh 07-01-2016 19:40 2592158

Цитата:

Цитата Костя_Лу@vk
но в терминале (linux mint) ругается на эту черту. »

Вы наверное как-то не так вводите.

| - это перенаправление в конвеер вывода предыдущей команды (например вывод одной команды направляется на вход другой), например:

($ - это приглашение bash, а не сама команда)

Код:

$ echo -ne  "as\nbuka\n"
as
buka

$ echo -ne  "as\nbuka\n" | grep as
as

А вот эти команды другие - они логические, хотя и выглядят похоже
&& - это логическая команда "И",
|| - это логическая команда "ИЛИ",

Они могут, например частью команды test (см man test) или работать с ней в связке:

Код:

$ test  1 -eq 0 || echo aa
aa

$ test  1 -eq 1  || echo aa

$

$ test  1 -eq 1  && echo aa
aa

$ test  1 -eq 0  && echo aa

$

Тут такое объяснение - для того, что-бы посчитать результат для операции ИЛИ надо получиить хотя-бы одну истину, так-что будут выполняться все команды в строке, пока не встретится хотя-бы одна истина, а для команды И - пока не встретится ложь.

Есть ещё один оператор - ; (точка с запятой) - она просто отделяет одну команду от другой.

Вот ещё примеры - можете сами разобрать, как это работает:

Код:

$ cat / 2>/dev/null ; echo $#
0

$ cat / 2>/dev/null && echo $#

$                               

$ cat / 2>/dev/null || echo $#
0

$


Костя_Лу@vk 07-01-2016 19:44 2592160

а как вводится вертикальная черта? на виндовсе я знаю, шифт+следующая клавиша после клавиши +
а в линуксе она выводит не вертикальную черту а 2 вертикальных полоски-как-бу двоеточие из полосок.

например 1 # apt-get install vasya && petya
или вот пример 2:
# cat /var/log/Xorg.0.log | egrep -i "(error|fail|warning)"


правельно я сделал 1 пример или надо было написать так: # apt-get install vasya && apt-get install petya ?
второй пример терминал игнорирует и ругается на ошибку. если черту убрать и всё что после нее - он выполнит.

ruslandh 07-01-2016 19:55 2592166

Ну, первая команда у вас не выполнтся:
Вы вввели (пишу эквивалентные многострочные команды для ясности)
Код:

# apt-get install vasya
# petya

а не

Код:

# apt-get install vasya
# apt-get install petya


Костя_Лу@vk 07-01-2016 19:56 2592167

или надо было написать так: # apt-get install vasya && apt-get install petya ?

на виндовсе я знаю, шифт+следующая клавиша после клавиши + выводит вертикальную черту. а в линуксе выводится не вертикальную черту а 2 вертикальных полоски-как-бу двоеточие из полосок.

ruslandh 07-01-2016 20:00 2592169

Вторая команда на первый взгляд верная:

Код:

$  cat /var/log/Xorg.0.log | egrep -i "(error|fail|warning)"
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.

Цитата:

Цитата Костя_Лу@vk
на виндовсе я знаю, шифт+следующая клавиша после клавиши + выводит вертикальную черту. а в линуксе выводится не вертикальную черту а 2 вертикальных полоски-как-бу двоеточие из полосок. »

Мне трудно указать на эту клавишу, т.к. эта клавиша 'прыгает" в разных раскладках.

Могу просто указать все символы, которые выводятся этой кнопкой (первая без Shift, вторая с ней):

rus - \ /
lat - \ |

zai 07-01-2016 21:00 2592205

Цитата:

Цитата Костя_Лу@vk
или надо было написать так: # apt-get install vasya && apt-get install petya ? »

В данном случае: apt-get install vasya petya
Прочитай: http://www.opennet.ru/docs/RUS/bash_scripting_guide/

Костя_Лу@vk 07-01-2016 21:23 2592219

Цитата:

Цитата ruslandh
Могу просто указать все символы, которые выводятся этой кнопкой (первая без Shift, вторая с ней): »

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

ruslandh 07-01-2016 21:28 2592223

Цитата:

Цитата Костя_Лу@vk
в виндовсе у меня тоже так. а с линукса немного подрегому-там нет вертикальной черты. тока двоеточие из 2 палочек. »

Что-то у вас не так с английской раскладкой клавиатуры.

zai 07-01-2016 21:30 2592226

попробуй: Shift+кнопка под F11(между+ и стрелкой)

Костя_Лу@vk 07-01-2016 21:52 2592238

Цитата:

Цитата zai
попробуй: Shift+кнопка под F11 »

я так и делаю.

zai 07-01-2016 22:03 2592244

Цитата:

Цитата Костя_Лу@vk
я так и делаю »

на английской раскладке?

ruslandh 07-01-2016 22:21 2592252

https://ru.wikipedia.org/wiki/Вертикальная_черта

Я тут погуглил - вроде при некоторых шрифтах она рисуется неправильно.

Костя_Лу@vk 08-01-2016 20:22 2592566

Спасибо


Время: 20:48.

Время: 20:48.
© OSzone.net 2001-