我正在做 Shellshock 实验室,本教程提供了一种通过环境变量将函数传递给子进程的方法:
$ foo='() { echo "hello"; }'
$ export foo
$ /bin/bash
$ foo
hello
Run Code Online (Sandbox Code Playgroud)
然而,当我在 Ubuntu 20.04 上尝试这个时,foo
并没有转换为子进程中的函数。
$ foo='() { echo "hello"; }'
$ export foo
$ /bin/bash
$ foo
Command 'foo' not found, did you mean: ...
Run Code Online (Sandbox Code Playgroud)
有什么我错过的吗,或者这种方法只适用于某些版本的 bash?