Debian/Ubuntu - перечисление команд

Аватара пользователя
Костя_Лу@vk

Debian/Ubuntu - перечисление команд

Сообщение Костя_Лу@vk »

на сайтах часто пишут несколько команд разделяя вертикальной чертой |

но в терминале (linux mint) ругается на эту черту.

какие команды можно выполнять через черту и какие с помощью && и в чем разница?
Аватара пользователя
ruslandh

Re: Debian/Ubuntu - перечисление команд

Сообщение ruslandh »

Цитата Костя_Лу@vk:



но в терминале (linux mint) ругается на эту черту.
Debian/Ubuntu - перечисление команд




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



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



($ - это приглашение 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

Re: Debian/Ubuntu - перечисление команд

Сообщение Костя_Лу@vk »

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

а в линуксе она выводит не вертикальную черту а 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

Re: Debian/Ubuntu - перечисление команд

Сообщение ruslandh »

Ну, первая команда у вас не выполнтся:

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



Код:

Код: Выделить всё

# apt-get install vasya
# petya

а не





Код:

Код: Выделить всё

# apt-get install vasya
# apt-get install petya
Аватара пользователя
Костя_Лу@vk

Re: Debian/Ubuntu - перечисление команд

Сообщение Костя_Лу@vk »

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



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

Re: Debian/Ubuntu - перечисление команд

Сообщение ruslandh »

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





Код:

Код: Выделить всё

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


Цитата Костя_Лу@vk:



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




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



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



rus - \ /

lat - \ |
Аватара пользователя
zai

Re: Debian/Ubuntu - перечисление команд

Сообщение zai »

Цитата Костя_Лу@vk:



или надо было написать так: # apt-get install vasya && apt-get install petya ?
Debian/Ubuntu - перечисление команд




В данном случае: apt-get install vasya petya

Прочитай:
http://www.opennet.ru/docs/RUS/bash_scripting_guide/
Аватара пользователя
Костя_Лу@vk

Re: Debian/Ubuntu - перечисление команд

Сообщение Костя_Лу@vk »

Цитата ruslandh:



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




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

Re: Debian/Ubuntu - перечисление команд

Сообщение ruslandh »

Цитата Костя_Лу@vk:



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




Что-то у вас не так с английской раскладкой клавиатуры.
Аватара пользователя
zai

Re: Debian/Ubuntu - перечисление команд

Сообщение zai »

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

Вернуться в «Общий по Linux»