Perl system
использует /bin/sh
в качестве оболочки ( https://perldoc.perl.org/functions/system.html ). Он не будет понимать специфичный для bash синтаксис, такой как подстановка процессов.
Вы захотите явно вызвать bash:
system 'bash', '-c', q{source ~/.bash_profile; osascript -e 'quit app "Chromium"'};
Использование механизма одинарных кавычек q{}
, чтобы избежать обратной косой черты.
Примечание для bash: если вы вызываете его как интерактивную оболочку, он автоматически выплескивается в bashrc, поэтому вы можете выполнить:
system 'bash', '-ic', q{osascript -e 'quit app "Chromium"'};
ref: https: //www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files
Прямая ссылка на инструмент IsDebug, наряду с инструкциями по использованию.
Единственный лучший способ сделать это - проверить сами скомпилированные сборки. Существует этот очень полезный инструмент под названием «Информация о сборке .NET», найденный здесь Ротемом Блумом. После того, как вы установите этот файл, он будет открывать файлы .dll самостоятельно. После установки вы можете просто дважды щелкнуть по сборке, чтобы открыть ее, и она предоставит вам детали сборки, как показано на скриншоте ниже. Там вы можете определить, если это отладка скомпилировано или нет.
альтернативный текст http://ruchitsurati.net/myfiles/asm_info.jpg
(source: ruchitsurati.net )
Как Программно Обнаружить, если блок Компилируется в режиме Debug или Release от Scott Hanselman.
static bool IsDebug(){
bool rv = false;
#if DEBUG
rv = true;
#endif
return rv;
}
Нет, вероятно, никакого универсального пути. Однако Вы могли искать ссылки на Assert
и Debug
от System.Diagnostics
пространство имен. Присутствие тех укажет, что флаг DEBUG был установлен.
То же содержит для Trace
и флаг TRACE.
Очевидно, это не будет работать, если исходный код не будет использовать типы от этих пространств имен.