LINUX.ORG.RU

exec – запускает процесс в контексте данного шелла, а не суб-шелла

остальное тебе описали комментариями

beastie ★★★★★
()
Ответ на: комментарий от beastie

exec – запускает процесс в контексте данного шелла, а не суб-шелла

Ерунду-то не пиши. Это exec без аргументов. Ничего он не делает, кроме открытия файла и назначения ему дескриптора 8 (или 9) с NOCLOEXEC, через которые потом работает flock. A вообще-то это всё подробно описано в man-ах (bash(dash,mksh) и flock), гуглить ничего не надо, тем более на LOR-е спрашивать.

ABW ★★★★★
()

trash_folder=«/home/ashish/.local/share/mail/iiser/[Gmail].Trash/»

Вот зачем так делать? Зачем? Вот что мешает просто прописать

trash_folder="$XDG_DATA_HOME"/mail/iiser/[Gmail].Trash

Зачем выкладывать дотфайлы, если в них мусор, который отвалится на любом пк, кроме твоего? Кому они нужны?

Это я еще про захардкорженное iiser не говорю. Сам же себе в ногу и выстрелишь.

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 1)
Ответ на: комментарий от Siborgium

Никакие XDG_DATA_HOME у нормальных людей не определены.

slovazap ★★★★★
()
Ответ на: комментарий от Siborgium

Ваш УМВР будет работать если по пути «$XDG_DATA_HOME»/mail/iiser/ нет файликов, начинающихся на любую букву из слова Gmail и заканчивающихся на .Trash

То что не работает конкретный пример с touch — это какой-то новый подход к стандартам, ибо символы *?[] как раз и сделаны, чтобы выбирать из имеющихся файликов.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от gnu_linux

Как так? Что за магия?

Этой магии лет 50. По крайней мере всегда так было до bash 5.0

vodz ★★★★★
()
Ответ на: комментарий от Siborgium

А в моей манжаре, например, не определена XDG_DATA_HOME (зато есть XDG_DATA_DIRS, но это другое).

Доктор, это лечится?

hobbit ★★★★★
()
Ответ на: комментарий от Siborgium

Окей. А почему она всё-таки может быть пуста? Она в стандарте обязательна или нет? Система-то достаточно новая, не дебиан стейбл, чай. Какой-нибудь freedesktop-овский пакет не установлен?

Ну и если ближе к ОП — речь шла про баш-скрипты, там код, который сначала проверяет переменную, потом к чему-то откатывается, начинает выглядеть угрожающе. Баш и так не самый читаемый язык… :)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от vodz

$XDG_DATA_HOME

> (gci env:XDG_*).Name
XDG_SESSION_DESKTOP
XDG_SEAT_PATH
XDG_MENU_PREFIX
XDG_SESSION_CLASS
XDG_DATA_DIRS
XDG_GREETER_DATA_DIR
XDG_SESSION_TYPE
XDG_CURRENT_DESKTOP
XDG_RUNTIME_DIR
XDG_CONFIG_DIRS
XDG_SESSION_PATH

> lsb_release -drc
Description:	Solus
Release:	4.1
Codename:	fortitude

anonymous
()
Ответ на: комментарий от hobbit

А почему она всё-таки может быть пуста? Она в стандарте обязательна или нет?

Она необязательна (как и, например, $XDG_CONFIG_HOME), и используется юзером для переопределения стандартной директории для хранения его данных.

Я действительно несколько поторопился, но суть примера была вовсе не в XDG, а в лютом хардкоде всего и вся.

Siborgium ★★★★★
()
Ответ на: комментарий от vodz

Да, я понял ошибку, согласен. Тем не менее, то, о чем я говорю, смысла от этой ошибки не теряет, хардкодить имя пользователя (или еще что-либо) в дотфайлах – к беде.

Siborgium ★★★★★
()
Ответ на: комментарий от anonymous

XDG_XXX

Вы явно ошиблись адресатом. Мне на все эти XDG_XXX глубоко положить. Я вообще сюда не собирался писать, пока не наткнулся в коментах на то, что разражает так, что кушать не могу. Ибо в записи v="$P"/add феерично всё. Там где надо ставить кавычки, там не стоят, почему надо вообще — не знают, а там где не надо, там ставят. И так и живут с этим и даже что-то возражают.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)

всем, спасибо. Разобрался :)

ubik
() автор топика
Ответ на: комментарий от vodz

Там где надо ставить кавычки, там не стоят, почему надо вообще — не знают.

Это все потому, что синтаксис из 80-х.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.