标签: quoting

TCL的常规字符串引用

我正在编写一个实用程序(恰好在python中),它以TCL脚本的形式生成输出.给定python中的一些任意字符串变量(不是unicode),我想生成一个类似的TCL行

set s something
Run Code Online (Sandbox Code Playgroud)

...将TCL变量' s'设置为该精确字符串,无论其中包含什么奇怪的字符.没有变得太奇怪,我不想让输出比需要的更麻烦.我相信一个体面的方法

  1. 如果字符串不是空的并且只包含字母数字,而某些字符.-_(但绝对不是$"{}\)那么它可以原样使用;

  2. 如果它只包含可打印字符而没有双引号或花括号(并且不以反斜杠结尾),那么只需将{}它放在一边;

  3. 否则,""在使用\转义后放置它" { } \ $ [ ] ,并\nnn转义为非打印字符.

问题:是否需要在双引号内转义的完整字符集?我在文档中找不到这个.我是否错过了一些东西(我几乎错过了(2)的字符串不能以\结尾).

我知道还有许多其他字符串可以引用 {},但似乎很难轻易识别它们.此外,看起来非打印字符(特别是换行符)可以使用(2)如果您不介意它们确实存在于TCL输出中.

tcl quoting

17
推荐指数
2
解决办法
3万
查看次数

clojure需要语法基本原理

我很难理解(并因此记住)这里描述的clojure需要语法:http://clojuredocs.org/clojure_core/1.3.0/clojure.core/require.它似乎既反直观又不统一.

例如,在下面的原因中,为什么需要引用此向量:

(require '[clj-json.core :as json])
Run Code Online (Sandbox Code Playgroud)

反直觉,因为通常在clojure中不引用向量(引用列表并将向量视为数据).

并且不均匀,因为在这种情况下,矢量未被引用:

(ns xxx 
    (:require [clj-json.core :as json]))
Run Code Online (Sandbox Code Playgroud)

我意识到:requirens 函数和ns宏中的用法只是在光学上相似,但仍然如此.

还有其他一些古怪的东西,例如我可以这样做:

(require '(clj-json.core))
Run Code Online (Sandbox Code Playgroud)

但我不能这样做:

(require '(clj-json.core :as json))
Run Code Online (Sandbox Code Playgroud)

有人可以回答这些问题:

  1. 在第一个例子中为什么需要引用向量?
  2. 为什么不需要在ns宏中引用它?
  3. 为什么列表符号不允许:as

我想知道为什么事情就是这样,或者是否在设计时没有发现不一致的原因.

syntax clojure include quoting

17
推荐指数
1
解决办法
647
查看次数

如何在VS2010后期构建步骤中加双引号

我正在尝试在VS2010中创建一个后期构建文件复制步骤,它在嵌入空格时处理路径宏.我试过用双引号括起复制命令,但是如果$(SolutionDir)包含空格则调用copy时会出错.错误消息中的回显命令行不显示双引号.

copy "$(SolutionDir)$(Configuration)\*" "$(TargetDir)"

我也单独尝试\",""但这两个导致2字符转义序列出现在echoed命令行?如何在构建步骤中正确地逃避双引号?

msbuild macros build quoting visual-studio-2010

16
推荐指数
5
解决办法
9650
查看次数

是>> 有必要吗?

我现在开发网站和XML接口已经7年了,而且从来没有出现过这样的情况,在这种情况下,确实需要使用&gt;for a >.所有disambiguition可能至今引述处理<,&,"'孤独.

有没有人遇到过这种情况(例如,与SGML处理,浏览器问题,XSLT等有关),你发现它逃脱大于号的必不可少的&gt;

更新:我刚刚查看了XML规范,例如,它在2.4节中介绍了字符数据:

人物数据

[14]      CharData       ::=      [^<&]* - ([^<&]* ']]>' [^<&]*)
Run Code Online (Sandbox Code Playgroud)

所以即使在那里,>除了从CDATA部分的结束序列之外,没有被提及为特殊的东西.

这个单一的案例,其中>有任何意义,将是CDATA部分的结尾]]>,但是再次,如果你引用它,引用(即文字字符串]]&gt;)将字面上落在输出中(因为这是CDATA).

html xml sgml escaping quoting

14
推荐指数
1
解决办法
458
查看次数

POD中的perl6签名

因为-->是perl6中签名中声明返回类型的首选方法,我想知道是否可以将函数签名的代码放入其中C<...>.

例如 C<foo(Int $a --> Bool)>

return escaping quoting code-documentation perl6

14
推荐指数
1
解决办法
158
查看次数

引用vs不引用变量赋值的RHS上的变量

在shell脚本中,将这两个变量分配给另一个变量时,这两者之间有什么区别:

a=$b
Run Code Online (Sandbox Code Playgroud)

a="$b"
Run Code Online (Sandbox Code Playgroud)

什么时候应该使用另一个?

syntax bash quoting

13
推荐指数
4
解决办法
2144
查看次数

Strange Lisp Quoting场景 - Graham的On Lisp,第37页

我正在通过格雷厄姆的书"On Lisp"工作,并且无法理解第37页的以下示例:

If we de?ne exclaim so that its return value
incorporates a quoted list,

(defun exclaim (expression)
  (append expression ’(oh my)))

>  (exclaim ’(lions and tigers and bears))
(LIONS AND TIGERS AND BEARS OH MY)
> (nconc * ’(goodness))
(LIONS AND TIGERS AND BEARS OH MY GOODNESS)

could alter the list within the function:

> (exclaim ’(fixnums and bignums and floats))
(FIXNUMS AND BIGNUMS AND FLOATS OH MY GOODNESS)

To make exclaim proof against such problems, it should be written:
(defun exclaim …

lisp common-lisp quoting literals on-lisp

13
推荐指数
3
解决办法
490
查看次数

eval,变量和引号的Bash问题

我一直在读这里和其他地方的bash引用,但我没有帮助解决这个问题.

问题是,我有一个小循环进行备份的脚本.

如果我不使用eval那么我有$OPTIONS变量的问题rsync.

但是如果我确实使用eval那么问题就变成了变量$CURRENT_DIR......

rsync返回以下消息:'Unexpected local arg:/ path/with'

我已经尝试过引用变量的各种方法 $CURRENT_DIR

CURRENT_DIR="/path/with spaces/backup"
DIR="dir_by_project"
f=":/home/project_in_server"
OPTIONS="-avr --exclude 'public_html/cms/cache/**' --exclude 'public_html/cms/components/libraries/cmslib/cache/**' --delete"
eval rsync --delete-excluded -i $OPTIONS  root@example.com$f $CURRENT_DIR/xxx/$DIR/files
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用变量$CURRENT_DIR而没有空格引起的问题?

bash rsync eval quoting

12
推荐指数
4
解决办法
3万
查看次数

Python中的csv编写器,带有自定义引用

我正在寻找一种方式来定义自定义quotingcsv.writerPython编写的.有4种内置的方法来测量值:

csv.QUOTE_ALL, csv.QUOTE_MINIMAL, csv.QUOTE_NONNUMERIC, csv.QUOTE_NONE
Run Code Online (Sandbox Code Playgroud)

但是我需要一个能模仿Postgres的引用机制FORCE QUOTE *,即它会引用所有非None值.使用csv.QUOTE_ALLPython会将None转为''但我希望有空字符串.

是否有可能使用内置csv模块(我对hacks不感兴趣,我已经这样做了:P)?或者我被迫写/获得一些自定义的csv解析器?

一般来说:是否可以为csv模块编写自定义引用机制?

python csv quoting

12
推荐指数
2
解决办法
1万
查看次数

PowerShell 7.3.0 破坏命令调用

我在 Powershell 脚本中使用 WinSCP。它突然停止工作了。一段时间后,我发现问题是由更新版本的 PowerShell 出现的:

减少代码:

& winscp `
    /log `
    /command `
        'echo Connecting...' `
        "open sftp://kjhgk:jkgh@example.com/ -hostkey=`"`"ssh-ed25519 includes spaces`"`"" 
Run Code Online (Sandbox Code Playgroud)

使用 v7.2.7 时出现错误消息

主机“example.com”不存在。

使用 v7.3.0 时出现错误消息

命令“open”的参数太多。

正如您所看到的,在 v7.3.0 中,WinSCP 根据 PS 版本接收不同的输入。我发现差异与主机密钥中的空格有关。如果省略它们,v7.3.0 会输出相同的错误。

PowerShell 的哪些更改导致了此问题?如何修复它?(我如何调试此类问题?我尝试了一些转义,但无论版本如何,字符串看起来都一样,没有明显的重大更改可以负责)

powershell escaping winscp quoting powershell-7.3

12
推荐指数
1
解决办法
1559
查看次数