1

您如何将以下行从基于 C 的系统转义到 Unix 命令行,以便 Unix 使用该行:

tr "\304\305\326" "\134\135\136" </stx/users/n/tmp/tmpfile1.tmp>/stx/users/n/tmp/tmpfile2.tmp

最明显的是:

build("|tr \"\\304\\305\\326\" \"\\134\\135\\136\", "<", tmp1, ">", tmp2")

但是在运行时,它会在 Unix 中给出一个未找到文件的错误。当多余的 \" 被删除时,它写入文件OK,但问题是字符串替换不起作用。使用上面的行,字符被替换OK。

撇号不能用于八进制字符,因为这样系统会将它们作为实际字符传递,例如。Ö而不是\326

函数“build”是正在使用的基于 C 的系统的函数。基本上是一个字符串生成器。管道用于使命令在 Unix 中运行。

4

1 回答 1

0

我不知道您构建函数实际上应该做什么,但也请记住您还必须转义空白字符。

于 2012-09-28T15:45:28.953 回答