Объясните вызовы regsub
regsub -all "\\\\033" $cmd "\033" cmd
[regsub -all "\\\\c" $cmd "" cmd]
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
Может кто-нибудь объяснить смысл этих трех утверждений? Это три разных утверждения.
1 ответ
regsub -all "\\\\033" $cmd "\033" cmd
Это заменяет все случаи обратной косой черты с последующим 033
с символом ASCII ESC. Он читает строку для обработки из cmd
переменная и записывает его обратно в эту переменную.
[regsub -all "\\\\c" $cmd "" cmd]
Это заменяет все случаи обратной косой черты с последующим c
с пустой строкой (эффективно удаляя ее). Это обновляет cmd
переменная. Он подставляет в свой вызывающий контекст количество выполненных замен.
regsub -all "\\\\$i" $cmd [lindex $exp_out $i] cmd
Это немного сложнее. Для определенного числового индекса, хранящегося в i
переменная, она заменяет все экземпляры обратной косой черты, за которыми следует индекс i
элемент (считая от 0) списка в exp_out
, Это обновляет cmd
переменная.