有没有什么函数可以escape文件名中的特殊字符

有没有什么函数可以escape文件名中的特殊字符

$filename = "\$test";
`cat $filename`


$filename是用`find .`得到的,但是比如这里$filename中有个$,于是被shell处理的时候就会被shell当变量替换
当然你可以s/\$/\\\$/g,然而特殊字符可能不止$一个,所以问一下有没有什么比较优美的解决办法,比如函数什么的
会这样吗?
呵呵,你试一下不就知道了
`cat '$filename'`
确实会这样。我都是做的替换,Linux的每个指令处理特殊字符都不一样的,有些需要加\,有些又不用加,有些甚至要加2个\,像如果用grep就必须加2个\在$前面。
这个应该没有什么统一的替换程序的


QUOTE:
原帖由 Lonki 于 2008-2-13 12:15 发表
`cat '$filename'`

这个办法不错,居然没想到,呵呵
之前把$filename中的引号先替换掉应该就完美了吧