这个命令工作正常
find . -name "test"
但我想在shell脚本中这样做
$FIND = "find . -name "
这样我就可以使用$FIND“测试”了
但它不起作用
解决方法:
考虑一下声明:
$Find = "find . -name "
这有两个问题:
> shell要求在赋值中=周围没有空格.
> $Find是变量的值.它本身不是变量.
因此,要为Find分配值,请使用:
Find="find . -name "
无法运行:
$Find test
这种方法既便携又有限.从长远来看,最好使用数组来解决这类问题.
最后,最好不要对变量名使用全部大写.系统对其变量使用全部大写,您不希望意外覆盖变量.
使用数组
可以为此定义一个数组,如下所示:
Find=(find . -name)
该数组可以如下使用:
"${Find[@]}" test
对于您展示的简单示例,阵列解决方案与更简单的变量解决方案之间没有区别.但是,一旦命令变得有点复杂并且需要引号或转义,就必须使用数组.