将“env”命令与“eval”一起使用

将“env”命令与“eval”一起使用

假设我有这个script.sh

env -i SOMEVAR=SOMEVALUE eval -- "$@"

我运行它:

./script.sh echo "\$SOMEVAR"

现在显示:

env: ‘eval’: No such file or directory

我想它不起作用,因为它eval是 Bash 内置的。

有什么办法可以env一起工作eval吗?

答案1

你为什么想要eval?只需使用外壳:

$ cat foo.sh
#!/bin/sh
env -i SOMEVAR=SOMEVALUE  sh -c "$@"

然后你像这样运行它:

$ foo.sh 'echo $SOMEVAR'
SOMEVALUE

相关内容