如何将基于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中运行。
答案 0 :(得分:0)
我不知道你构建的函数究竟应该做什么,但也要记住你也必须转义空格字符。