您如何将以下行从基于 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 中运行。