Невозможно объединить 2 переменные Linux в 1 [дубликаты]

В Win32 вызовите GetTokenInformation , передав маркер маркера и константу TokenUser. Он заполнит структуру TOKEN_USER для вас. Один из элементов в нем - SID пользователя. Это BLOB (двоичный), но вы можете превратить его в строку с помощью ConvertSidToStringSid .

Чтобы получить текущий дескриптор маркера, используйте OpenThreadToken или OpenProcessToken .

Если вы предпочитаете ATL, у него есть класс CAccessToken , в котором есть всевозможные интересные вещи.

.NET имеет свойство Thread.CurrentPrinciple , которое возвращает ссылку IPrincipal. Вы можете получить SID:

IPrincipal principal = Thread.CurrentPrincipal;
WindowsIdentity identity = principal.Identity as WindowsIdentity;
if (identity != null)
    Console.WriteLine(identity.User);

Также в .NET вы можете использовать WindowsIdentity.GetCurrent (), который возвращает текущий идентификатор пользователя:

WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (identity != null)
    Console.WriteLine(identity.User);

0
задан Mad Physicist 18 January 2019 в 03:20
поделиться

1 ответ

Поскольку подчеркивания - это буквально буквы, bash не может знать, когда заканчивается имя вашей переменной и начинается буквальное подчеркивание. В этом случае правильный способ ссылки на переменные - это ${...}, который однозначно отделяет имя от остальной части командной строки:

sample1="${env_abr1}_${cnt_abr1}"
sample2=${env_abr2}_${cnt_abr3}

В обоих случаях второе имя не требует специальной обработки , Любой другой (семантически действительный) небуквенный символ тоже подойдет, как вы указали в своем комментарии:

0
ответ дан Mad Physicist 18 January 2019 в 03:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: