Что означает записть в скрипте "$@"

Автор it0r, 27 июля 2015, 19:42:15

« назад - далее »

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

it0r

Всем привет.
Собственно вопрос - в теме: что означает эта запись "$@" ?

alsoijw

#1
it0r, http://linuxgeeks.ru/bash-2.htm
ЦитироватьИногда необходимо сослаться сразу на все аргументы командной строки. Для этого в bash есть специальная переменная "\$@", которая содержит все аргументы переданные скрипту разделенные пробелами.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

it0r

Цитата: alsoijw от 27 июля 2015, 22:10:38
it0r, http://linuxgeeks.ru/bash-2.htm
ЦитироватьИногда необходимо сослаться сразу на все аргументы командной строки. Для этого в bash есть специальная переменная "\$@", которая содержит все аргументы переданные скрипту разделенные пробелами.

я рад Вас видеть и здесь  :)

все очень просто: ... сам пытаюсь докопаться - но... поэтому пошел и по сайтам-форумам, связанным с debnian, ubuntu...
непонятен механизм передачи информации update-grub в интерфейс-меню запуска grub после bios.

скрипт update-grub заканчивается именно так: grub-mkconfig -o /boot/grub/grub.cfg "$@"
что здесь происходит - понятно... кроме вопроса темы  :)
и как видит загрузчик результат update-.. - непонятно.
система то еще не запущена, grub.cfg еще там, в не загруженной системе...

alsoijw

Цитата: it0r от 27 июля 2015, 22:24:15скрипт update-grub заканчивается именно так: grub-mkconfig -o /boot/grub/grub.cfg "$@"
Скрипт update-grub вызывается с какими то аргументами. Эти аргументы подставляются в строку grub-mkconfig -o /boot/grub/grub.cfg "$@"
alsoijw@debian:~$   bash 2 first second
first second
alsoijw@debian:~$  cat 2
echo "$@"
alsoijw@debian:~$
Повтори, думаю станет понятнее.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

it0r

#4
Цитата: alsoijw от 27 июля 2015, 22:32:14
...Повтори, думаю станет понятнее.


сколько раз?  :)

Cообщение объединено 27 июля 2015, 22:47:31

с программированием, скриптами - напряг... у меня.

alsoijw

Цитата: alsoijw от 27 июля 2015, 22:32:14Повтори, думаю станет понятнее.
Я имел в виду создай файл, вставь в него текст, выполни...

Пример:alsoijw@debian:~$ cat 2
#!/usr/bin/env bash

ls "$@"
alsoijw@debian:~$ ./2 /
bin  boot  dev etc  home  initrd.img  lib  lib64  lost+found  media  mnt  opt proc  root  run  sbin  srv  sys  tmp  usr  var vmlinuz
alsoijw@debian:~$ cd valama
alsoijw@debian:~/valama$ ../2 -a
.   AUTHORS  Changelog CMakeLists.txt data    .git        guanako pixmaps  README.md  tests .tx      vapi
..  build    cmake COPYING extravapi  .gitignore  icons po src     .travis.yml  valama.vlp
alsoijw@debian:~/valama$
alsoijw@debian:~/valama$ ../2 -a /
.  ..  bin  boot  dev  etc  home  initrd.img  lib  lib64  lost+found  media  mnt  opt  proc  root  run sbin  srv  sys tmp  usr  var  vmlinuz
alsoijw@debian:~/valama$
Я передаю как аргумент "/". Он подставляется на место строкиls "$@"Получается ls /Понял?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

it0r

м.б. отправить куда-нить ( не очень далеко  ;D) что то почитать?... или просто ответить на вопрос выше: "как видит загрузчик результат update-.. - непонятно.
система то еще не запущена, grub.cfg еще там, в не загруженной системе..."  :)

alsoijw

Цитата: it0r от 27 июля 2015, 23:21:59м.б. отправить куда-нить ( не очень далеко  ;D) что то почитать?
Что происходит после нажатия на кнопку питания?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

it0r


alsoijw

it0r, если он выключен? Подробно
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

ZEN

#10
Цитировать"как видит загрузчик результат update-.. - непонятно.

Можно с помощью ключа -x посмотреть как выполняется скрипт. Вот пример с update-grub

$ bash -x update-grub
+ set -e
+ exec grub-mkconfig -o /boot/grub/grub.cfg


$ bash -x update-grub one two tree
+ set -e
+ exec grub-mkconfig -o /boot/grub/grub.cfg one two tree


Соответственно пример выше дает понять, что в update-grub $@ используется для проброса параметров к grub-mkconfig. Какие именно параметры можно подсмотреть в man grub-mkconfig. Ну или так:

$ update-grub -h
Использование: grub-mkconfig [ПАРАМЕТР]
Генерирует файл настройки grub

  -o, --output=ФАЙЛ       вывести сгенерированные
                          настройки в ФАЙЛ [по
                          умолчанию stdout]
  -h, --help              показать эту справку и
                          закончить работу
  -v, --version           показать информацию о
                          версии и завершить работу

Сообщения об ошибках отправляйте на <bug-grub@gnu.org>.
Crimea is Ukraine