Использование последовательности обратной косой черты-новой строки в Tcl

В Tcl мы используем обратную косую черту для экранирования специальных символов, а также для распределения длинных команд по нескольким строкам.

Например, типичный цикл if можно записать как

set some_Variable_here  1
if { $some_Variable_here == 1 } { 
    puts "it is equal to 1"
} else { 
    puts "it is not equal to 1"
}

С помощью обратной косой черты это можно записать и так:

set some_Variable_here  1
if { $some_Variable_here == 1 } \
{ 
    puts "it is equal to 1"
} \
else { 
    puts "it is not equal to 1"
}

Таким образом, с помощью обратной косой черты мы можем заставить операторы обрабатываться так, как будто они находятся в одной строке.

Давайте рассмотрим оператор set

Я могу написать что-то вроде ниже

set x Albert\ Einstein;# This works
puts $x

#This one is not working
set y Albert\
Einstein

Если я попытаюсь использовать двойные кавычки или фигурные скобки, то сработает вышеприведенное. Итак, можно ли избежать новой строки с помощью обратной косой черты без двойных кавычек или фигурных скобок?


person Dinesh    schedule 23.09.2014    source источник


Ответы (1)


Последовательность обратная косая черта-новая строка-пробел* (т. е. следующий пробел пропускается) всегда заменяется одним пробелом. Чтобы получить обратную косую черту, за которой следует новая строка в результирующей строке, используйте вместо нее \\, а затем \n.

set y Albert\\\nEinstein
person Donal Fellows    schedule 23.09.2014