Size: a a a

Gentoo GNU/Linux [RU]

2020 August 17

A

Aragaer in Gentoo GNU/Linux [RU]
как правило для этого надо экранировать кавычки или завернуть все в одинарные
источник

l

linxon in Gentoo GNU/Linux [RU]
можно сделать вот так cat ttt.json | while read -r output; do ...; done
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
что-то я всё опробовал и разные варианты shell expand и записать в файл и вызывать с $(cat params.txt) - везде шел вставляет лишние кавычки
источник

l

linxon in Gentoo GNU/Linux [RU]
read -r вроде бы экранирует что-то там(надо в мане посмотреть)
источник

A

Aragaer in Gentoo GNU/Linux [RU]
источник

l

linxon in Gentoo GNU/Linux [RU]
linxon
read -r вроде бы экранирует что-то там(надо в мане посмотреть)
все таки она заставляет игнорировать ескейп символы через \
источник

l

linxon in Gentoo GNU/Linux [RU]
*cyberzx
что-то я всё опробовал и разные варианты shell expand и записать в файл и вызывать с $(cat params.txt) - везде шел вставляет лишние кавычки
может как-нибудь обернуть в одинарные кавычки? :)
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
да вот у меня утилитка такая дурацкая, котороый нужно передавать данные через команд лайн и на ковычках она ломается
источник

l

linxon in Gentoo GNU/Linux [RU]
${parameter@operator}

   The expansion is either a transformation of the value of parameter or information about parameter itself, depending on the value of operator. Each operator is a single letter:

   Q

       The expansion is a string that is the value of parameter quoted in a format that can be reused as input.
источник

l

linxon in Gentoo GNU/Linux [RU]
попробуй ${var@Q}
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
да это тоже пробовал. всё равно вставляет кавычки после пробелов
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
такое ощущение, что эта задача решаема только скриптами на пайтоне
источник

A

Aragaer in Gentoo GNU/Linux [RU]
я б задействовал какой-нибудь язык, в котором можно вызвать exec и явно указать "вот эта хрень с пробелами это один аргумент"
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
о, у меня ещё есть надежда на xargs
источник

аᶘ

асоциальный пикотран... in Gentoo GNU/Linux [RU]
*cyberzx
Кто-нибудь знает,  можно ли в шел скрипте передать сложную строку (например json) в качестве аргумента программы, что бы эта строка никак не менялась. то есть не добавлялись лишние кавычки нигде
→ ./a.out '{ a: "32", { "b": 32, "c": 44 } }'
Args count: 2
 arg[0] = ./a.out
 arg[1] = { a: "32", { "b": 32, "c": 44 } }


Можешь показать на примере, что и как у тебя ломается?
источник

аᶘ

асоциальный пикотран... in Gentoo GNU/Linux [RU]
#include <stdio.h>

int main(int argc, char **argv) {
 fprintf(stdout, "Args count: %d\n", argc);
 for(int i = 0; i < argc; i++) {
   fprintf(stdout, "  arg[%d] = %s\n", i, argv[i]);
 }
 return 0;
}
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
ну вот такая переменная
task_combine="langpack:t=$build combine{ dest:t=../lang/$proj/$proj.csv defLocLang:t=English _en { find{ path:t=\"../$proj/_en_ru\" } } _ru { find{ path:t=\"../$proj/_en_ru\" } } _de { find{ path:t=\"../$proj/_de\" } } _fr { find{ path:t=\"../$proj/_fr\" } } _jp { find{ path:t=\"../lang_tmp/$proj/_jp\" } } _ko { find{ path:t=\"../$proj/_ko\" } } _zh { find{ path:t=\"../lang_tmp/$proj/_zh\" } } }"
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
echo ${task_combine}

echo langpack:t=rel 'combine{' dest:t=../lang/common/common.csv defLocLang:t=English _en '{' 'find{' 'path:t="../common/_en_ru"' '}' '}' _ru '{' 'find{' 'path:t="../common/_en_ru"' '}' '}' _de '{' 'find{' 'path:t="../common/_de"' '}' '}' _fr '{' 'find{' 'path:t="../common/_fr"' '}' '}' _jp '{' 'find{' 'path:t="../lang_tmp/common/_jp"' '}' '}' _ko '{' 'find{' 'path:t="../common/_ko"' '}' '}' _zh '{' 'find{' 'path:t="../lang_tmp/common/_zh"' '}' '}' '}'
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
вот тут перед combine появляется кавычка
источник

*

*cyberzx in Gentoo GNU/Linux [RU]
Если так вызывать
echo "${task_combine}"
echo 'langpack:t=rel combine{ dest:t=../lang/common/common.csv defLocLang:t=English _en { find{ path:t="../common/_en_ru" } } _ru { find{ path:t="../common/_en_ru" } } _de { find{ path:t="../common/_de" } } _fr { find{ path:t="../common/_fr" } } _jp { find{ path:t="../lang_tmp/common/_jp" } } _ko { find{ path:t="../common/_ko" } } _zh { find{ path:t="../lang_tmp/common/_zh" } } }'

то, весь текст обёртывается в кавычки
источник