Bash 转义让我很困惑

Bash 转义让我很困惑

假设我有一个名为“a\b”的文件(可执行文件)。它只是呼应一些东西。现在我想调用它,我可以通过输入来做到这一点

user@machine:~/test$ ./a\\b

进入我的控制台。现在让我们将其写入变量中

user@machine:~/test$ COMMAND="./a\\b"

现在我想通过使用反引号来执行这个文件“a\b”。结果如下:

user@machine:~/test$ `$COMMAND`
a: command not found
user@machine:~/test$

所以,这是我的问题:我怎样才能做到这一点?

我尝试了多种方法,并在 COMMAND 中使用 '' 和多个反斜杠,但没有任何效果......

我知道它毫无意义,但我只是想知道 bash 和 `` 如何协同工作来解释事物

答案1

我认为您的可执行文件只是打印a到屏幕上。当您写入时$COMMAND,文件被执行,并且输出尝试再次执行。因为它无法执行a命令,所以会出现错误。您可以简单地使用$COMMANDecho `$COMMAND`

相关内容