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


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

Автор Тема: Какой тип данных у $@ в BASH  (Прочитано 700 раз)

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

Оффлайн Malamut

  • Автор темы
  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Какой тип данных у $@ в BASH
« : 25 Февраля 2014, 02:01:34 »
Потихоньку сталкиваюсь с разными тонкостями BASH и зашёл в тупик. Никак не могу понять простую вещь - какой тип данных у $@ и ${somearray[@]}? Точнее даже не так, первый вопрос такой: правда ли что $@ по поведению и возможностям использования полностью аналогично ${somearray[@]}? (где somearray - какой-нибудь массив).

А второй вопрос, собственно - какой тип данных у $@ и, самое главное, где-бы почитать исчерпывающую информацию на тему того, как с этим типом данных работать и к чему приводит его использование в различных ситуациях?

Поясню: есть такие хитрости по типу ${@: -1}. Если бы $@ был бы строкой, то такая конструкция возвращала бы последний символ. А она возвращает последний элемент массива, в случае с $@ - последний элемент вообще говоря несуществующего массива всех входных аргументов.

Проясните, пожалуйста, что это вообще за зверь такой, как с ним работать и самое главное - какие у него есть возможности?

Как я понимаю, $@ - это некоторый промежуточный псевдотип, нечто между массивом и строкой, который получить внешними средствами невозможно. $@ практически всегда прикидывается строкой разделённых пробелами компонент, и единственное его уникальное свойство, которое я нашёл - то самое ${@: N} - отрезание первых или последних N компонент. Более ничего вразумительного накопать/надумать не удалось. Очень рассчитываю на помощь, хотелось бы разобраться.
« Последнее редактирование: 25 Февраля 2014, 02:03:23 от Malamut »
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Какой тип данных у $@ в BASH
« Ответ #1 : 25 Февраля 2014, 13:04:28 »
Где-то писали что именно Bash не различает строковые и целочисленные переменные.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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