这个命令工作正常
find . -name "test"
但我想在 shell 脚本中这样做
$FIND = "find . -name "
这样我就可以使用$FIND "test"
但它不起作用
最佳答案
考虑声明:
$Find = "find . -name "
这有两个问题:
Shell 要求赋值中的
=
周围没有空格。$Find
是一个变量的值。它不是变量本身。
因此,要为 Find
赋值,请使用:
Find="find . -name "
无法运行:
$Find test
这种方法是可移植的,但有局限性。从长远来看,这种问题最好使用数组。
最后,最好不要对变量名使用全部大写。系统对其变量使用全部大写,您不希望不小心覆盖一个。
使用数组
可以为此定义一个数组,如下所示:
Find=(find . -name)
数组可以按如下方式使用:
"${Find[@]}" test
对于您展示的简单示例,数组解决方案和更简单的变量解决方案之间没有区别。但是,一旦命令变得有点复杂并且需要引号或转义符,就必须使用数组。
关于linux - 我如何将半命令分配给bash中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490923/