linux - 我如何将半命令分配给bash中的变量

标签 linux bash

这个命令工作正常

find . -name "test"

但我想在 shell 脚本中这样做

$FIND = "find . -name "

这样我就可以使用$FIND "test"

但它不起作用

最佳答案

考虑声明:

$Find = "find . -name "

这有两个问题:

  1. Shell 要求赋值中的 = 周围没有空格。

  2. $Find 是一个变量的值。它不是变量本身。

因此,要为 Find 赋值,请使用:

Find="find . -name "

无法运行:

$Find test

这种方法是可移植的,但有局限性。从长远来看,这种问题最好使用数组。

最后,最好不要对变量名使用全部大写。系统对其变量使用全部大写,您不希望不小心覆盖一个。

使用数组

可以为此定义一个数组,如下所示:

Find=(find . -name)

数组可以按如下方式使用:

"${Find[@]}" test

对于您展示的简单示例,数组解决方案和更简单的变量解决方案之间没有区别。但是,一旦命令变得有点复杂并且需要引号或转义符,就必须使用数组。

关于linux - 我如何将半命令分配给bash中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490923/

相关文章:

c - 如何修改s_client的代码?

linux - 在 PHP 中从 NAS linux 网络检索文件

linux - 嵌入式期望脚本返回 bash 成功或失败

linux - 写入文件时循环的 Shell Bash 脚本

bash - 如何使用conf文件中的参数来了解磁盘使用情况?

python - 以格式化版本打印程序的输出

Linux 下的 XML 解析

linux - Linux 上的 Drupal 初始设置?

bash - Sed 语法 - 分解

php - 在 rsync/mv 之前编辑文件