- вместо муйней хаяться для начала можно посмотреть на разницу в обработке строк в, Ann None (?), 15:45 , 19-Июл-23 (1) +1
вместо муйней хаяться для начала можно посмотреть на разницу в обработке строк в одинарных и в двойных кавычках и понять какие когда нужны. потом не забыть посмотреть на экранирование этих самых кавычек внутри кавычек. на закуску почитать про мультилайн переменные и прочий cat << EOF и переосмыслив подход подойти к задаче с правильной стороны.
- Аффтар, опиши реальную задачу, которая перед тобой стоит А не одно из ошибочных, Аноним (2), 10:44 , 20-Июл-23 (2)
Аффтар, опиши реальную задачу, которая перед тобой стоит. А не одно из ошибочных решений. https://xyproblem.info/
- проблема как вы очевидно понимаете, в том что вы задаете переменную в самом теле, ыы (?), 21:32 , 20-Июл-23 (3)
> Добрый день! > есть переменная a, в которой предполагается хранить команды shell любой сложности > для последующей записи этой команды в БД. Для этого мне нужно проблема как вы очевидно понимаете, в том что вы задаете переменную в самом теле скрипта, и уже на момент ее определения - интерпретатор выполняет все необходимые подстановки. если вы будете брать строки из файла- то в момент чтения такой строки в переменную- спец-символы будут просто символами и их можно экранировать регекспом. > экранировать все спецсимволы $, чтобы bash не обрабатывал конструкцию $(..), которая
вы уверены что в БД нужно хранить именно строки "как есть" с экранированием? ведь можно сразу, ничего не экранируя закодировать строку в base64 и хранить в базе строки base64... - Автор, ты столько проблем себе создаешь на ровном месте Не забудь еще что БД, е, Аноним (-), 20:22 , 30-Июл-23 (4)
> есть переменная a, в которой предполагается хранить команды shell любой сложности > для последующей записи этой команды в БД. Автор, ты столько проблем себе создаешь на ровном месте. Не забудь еще что БД, если это SQL какой-то, тоже надо экранирование. При том - отличное от экранирования shell. И в целом написать такую конструкцию в безопасном виде - будет очень нетривиально, особенно если ты не эксперт. Так что закончиться это все может довольно печально, взломамми и уязвимостями. Может, какие-то более подходящие для работы инструменты взять?
|