如何将带有空格的变量传递给环境解释器



我有这个解释器,它打印ARGS变量:

#!/bin/bash
echo "[$ARGS]"

我在另一个脚本中使用这个解释器:

#!/usr/bin/env ARGS=first interpreter
调用第二个脚本,我得到
[first]

如何得到

[first second]

?

简而言之:不依赖于能够将多个参数作为shebang行的一部分传递给,并且可以使用的一个参数必须是未加引号的单个单词

有关更多背景信息,请参阅@tholu已经在评论中链接到的问题(https://stackoverflow.com/a/4304187/45375)。

因此,我建议您重写其他脚本以使用bash:

#!/bin/bash
ARGS='first second' /usr/bin/env interpreter "$@"
  • 这允许您使用bash自己的机制来定义环境变量ad-hoc(对于被调用的命令及其子命令),通过在命令前加上变量赋值,允许您使用引号甚至定义多个变量。
  • 任何传入的命令行参数都通过"$@"传递给interpreter

相关内容

  • 没有找到相关文章

最新更新