如何使用字符串形式的文件代替 bash 的 sh 格式文件

如何使用字符串形式的文件代替 bash 的 sh 格式文件

目前,我正在 macOS 终端中使用 bash 命令以 sh 文件类型运行我的命令,如下所示:

bash test.sh

并且正如您所知,代码可以运行,现在我想给出 test.sh 的内部值,即一些行字符串,并尝试使其运行,而不必提供我的命令的文件格式。

假设 test.sh 有以下代码:

echo "Hello, world!"
ls

现在我想要运行如下类似 sudo 代码的代码:

bash """ echo "Hello, world!"; ls """

我的目标是摆脱使用 sh 文件的想法。我的目标是:如果 sh 文件提供了字符串、文本或命令,我希望以这种尊重的方式做同样的事情,就像字符串或大字符串将所有命令提供给 bash 一样,我希望 sh 文件停止运行。

我怎样才能做到这一点?

答案1

也许你应该少考虑“向 bash 发送命令”,多考虑“执行程序”

  • 不要调用你的程序test.sh,而是mytest无延期
  • 确保它以#!/usr/bin/env bash以下方式启动,以便操作系统知道它需要使用 bash 来执行它
  • 使其可执行:chmod a+x mytest
  • 像这样调用它/path/to/mytest
    • 或者将其移动到 PATH 中的目录中,然后使用以下命令调用它mytest

现在,您不需要担心它是否是“sh 文件”:它只是系统上的另一个可执行程序。

相关内容