Короткий вариант:
echo sh(script: 'ls -al', returnStdout: true).result
[...] Если я хочу получить строку, содержащую 5
blockquote >\
, должен ли я писать 10\
[...]Да, вы должны. Чтобы записать одиночную
\
в строке, вы пишете ее как"\\"
.Это связано с тем, что
\
является специальным символом, зарезервированным для escape символом который следует за ним. (Возможно, вы признаете\n
как новую строку.) Также полезно, если вы хотите написать строку, содержащую один файл"
. Вы записываете его как"\""
.Причина, по которой
\\\str
недействительна, заключается в том, что она интерпретируется как\\
(что соответствует одному\
), за которым следует\s
, что недействителен, поскольку «escape-кодs
» не имеет значения.
Обратите внимание, что удвоение обратных косых черт связано с тем, что вы вводите строку в командной строке, а строка сначала анализируется парсером R. Вы можете вводить строки по-разному, некоторые из которых не нуждаются в удвоении. Например:
> tmp <- scan(what='')
1: \\\\\str
2:
Read 1 item
> print(tmp)
[1] "\\\\\\\\\\str"
> cat(tmp, '\n')
\\\\\str
>
Прочитайте этот раздел о символьных векторах.
По сути, в нем говорится, что при вводе символьных строковых литералов вы заключите их в пару кавычек ("или '). Внутри этих кавычек вы можете создавать специальные символы, используя символ \ в качестве escape-символа.
Например,\n обозначает новую строку или \ "можно использовать для ввода" без R мышления, это конец строки. Поскольку символ \ является escape-символом, вам нужен способ ввода фактического. Это делается с помощью \\. Escaping escape!
r'allows\unescaped\backslashes'
? – The Red Pea 27 October 2015 в 18:24