小编ehi*_*ime的帖子

BASH 函数不转义控制字符

我有一个用来查找东西的函数,但不幸的是,每当我向它传递一个控制字符($intVal或其他testing :)时,它就会窒息。我想知道修复是什么?

我可以理解在 grep中使用$or%:etc 而不转义会导致此问题,但是由于我是通过引用传入的,因此我不确定如何转义它...

无论如何,这是代码。

function ffind()
{
     if [ $1 ] ; then
         find -type f | grep -ir '$1' * | grep -v '.svn'
     else
         echo "'$1' is not a valid resource"
     fi
}
Run Code Online (Sandbox Code Playgroud)

例子):

$ ffind $intVal
'' is not a valid resource

$ ffind "testing :"
bash: [: testing: unary operator expected
'testing :' is not a valid resource
Run Code Online (Sandbox Code Playgroud)

shell-script bashrc bash-scripting

4
推荐指数
1
解决办法
1118
查看次数

标签 统计

bash-scripting ×1

bashrc ×1

shell-script ×1