Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Usage  (Прочитано 814 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Usage
« : 02 Апреля 2017, 08:12:44 »
Здравствуйте, обьясните пожалуйста значение функции Usage.
Спасибо

Оффлайн symon.2014

  • Забанен
  • Старожил
  • *
  • Сообщений: 1225
  • Ковырятель страны OS.
    • Просмотр профиля
Re: Usage
« Ответ #1 : 02 Апреля 2017, 08:21:41 »
 youra, Где? В чём?  :idiot2:

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Usage
« Ответ #2 : 02 Апреля 2017, 08:51:14 »
в скриптах bash. Например
echo Usage: $0 newfile ....

Оффлайн symon.2014

  • Забанен
  • Старожил
  • *
  • Сообщений: 1225
  • Ковырятель страны OS.
    • Просмотр профиля

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Usage
« Ответ #4 : 02 Апреля 2017, 09:35:19 »
то есть Usage перенаправляет станданртный поток ошибок, в данном случае на стандартный поток ввода echo?!
Другой вопрос, почему функция shift сдвигает параметры командной строки в "лево", в то время как числовые показатели увеличиваются, относительно чего рассматривать?
Спасибо

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Usage
« Ответ #5 : 02 Апреля 2017, 09:49:30 »
нет, сам в мопед.

Wars ~.o

Оффлайн symon.2014

  • Забанен
  • Старожил
  • *
  • Сообщений: 1225
  • Ковырятель страны OS.
    • Просмотр профиля
Re: Usage
« Ответ #6 : 02 Апреля 2017, 09:53:34 »

Punko

  • Гость
Re: Usage
« Ответ #7 : 02 Апреля 2017, 10:40:47 »
то есть Usage перенаправляет станданртный поток ошибок, в данном случае на стандартный поток ввода echo?!
Нет. Usage - это мини-хелп, который выводится при не правильном использовании скрипта.
То есть, если вместо 2 аргументов был передан один, то вызовется usage  с описание запуска скрипта.

Другой вопрос, почему функция shift сдвигает параметры командной строки в "лево", в то время как числовые показатели увеличиваются, относительно чего рассматривать?
какие числовые показатели?

toZen

  • Гость
Re: Usage
« Ответ #8 : 02 Апреля 2017, 10:47:17 »
нет, сам в мопед.
Это пять!!!  ;D

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Usage
« Ответ #9 : 02 Апреля 2017, 11:05:43 »
т е Usage - использует переданные ей аргументы и отправляет на ввод echo(в моем случае).
по поводу shift : а можно это интерпретировать( то есть понять) как i++; где 0 < i <= b если b это колличество переданных параметров в командной строке. Одно не понятно, почему сдвиг влево?!

Пользователь добавил сообщение 02 Апреля 2017, 11:09:45:
то есть Usage перенаправляет станданртный поток ошибок, в данном случае на стандартный поток ввода echo?!
Нет. Usage - это мини-хелп, который выводится при не правильном использовании скрипта.
То есть, если вместо 2 аргументов был передан один, то вызовется usage  с описание запуска скрипта.

Другой вопрос, почему функция shift сдвигает параметры командной строки в "лево", в то время как числовые показатели увеличиваются, относительно чего рассматривать?
какие числовые показатели?

Теперь понял, мини-хелп, а после двоеточия значения могут быть любые, он все равно отправит их на стандартный вывод?
« Последнее редактирование: 02 Апреля 2017, 11:09:45 от youra »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Usage
« Ответ #10 : 02 Апреля 2017, 11:16:19 »
youra, а давайте Вы будете читать документацию и перестанете придумывать ерунду?
echo Usage: $0 newfile
Здесь Usage просто текст, а никакая не функция: команда просто выводит текст сообщения как правильно построить команду с использованием скрипта (echo текст справки)
по поводу shift : а можно это интерпретировать
Нельзя! Есть определение данной функции и не надо «пороть отсебятину»
Цитата: help shift
shift: shift [n]
    Shift positional parameters.
   
    Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... 
    If N is  not given, it is assumed to be 1.
Т.е. при N=1: 1 <— 2, 2 <— 3 (второй позиционный параметр становится первым, третий — вторым и т.д.) В какую сторону «сдвиг»?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн youra

  • Автор темы
  • Забанен
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Usage
« Ответ #11 : 02 Апреля 2017, 11:24:57 »
    Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... 

т.е $1 это n+1 где n первый параметр?!)
Цитировать
Правила форума
2. На форуме ЗАПРЕЩЕНО
2.11.
Чрезмерное цитирование. Цитаты нужны для выделения какой-то небольшой части сообщения с целью её комментирования, не забывайте об этом.
--Azure

Пользователь добавил сообщение 02 Апреля 2017, 11:31:12:
спасибо
« Последнее редактирование: 02 Апреля 2017, 11:31:12 от youra »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Usage
« Ответ #12 : 02 Апреля 2017, 11:32:08 »
где n первый параметр?
Остановитесь на минуту и дайте себе возможность вдуматься в то что написано. Не надо «вбрасывать» первопапавшие в голову версии…
N — это аргумент команды shift. Т.е. сдвиг может быть сразу на 2, 3 и больше параметров. Сравнитеset -- arg1 arg2 arg3 arg4 arg5
echo $*
shift
echo $*
set -- arg1 arg2 arg3 arg4 arg5
echo $*
shift 3
echo $*
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Usage
« Ответ #13 : 02 Апреля 2017, 11:56:40 »
http://paste.ubuntu.com/24298241/
4:L~/c++$
4:L~/c++$ ./usage.sh
1 2 3 4 5 6 7 8 9 10
4:L~/c++$ ./usage.sh -h
Usage ./usage.sh -a [<1> to <10>]
4:L~/c++$ ./usage.sh -a
Usage ./usage.sh -a [<1> to <10>]
4:L~/c++$ ./usage.sh -a 11
Usage ./usage.sh -a [<1> to <10>]
4:L~/c++$ ./usage.sh -a 10
1 2 3 4 5 6 7 8 9 10
4:L~/c++$ ./usage.sh -a 0
Usage ./usage.sh -a [<1> to <10>]
4:L~/c++$ ./usage.sh -a 1
1
4:L~/c++$
4:L~/c++$ ./usage.sh -a 0 || echo ERR
Usage ./usage.sh -a [<1> to <10>]
ERR
4:L~/c++$ ./usage.sh -a 3 || echo ERR
1 2 3
4:L~/c++$

Wars ~.o

 

Страница сгенерирована за 0.09 секунд. Запросов: 23.