目前,我正在 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
- 或者将其移动到 PATH 中的目录中,然后使用以下命令调用它
现在,您不需要担心它是否是“sh 文件”:它只是系统上的另一个可执行程序。