假设我使用 bash 登录并定义了一个别名。
$ alias c=clear
$ echo $0
bash
现在我输入破折号。
$ dash
$ echo $0
dash
bash 中定义的别名不可用:
$ alias
$
我如何访问它?更一般地说,如何从子进程访问内存中的内容?
更准确地说,“访问”的意思是能够获得与alias
在父进程中运行时获得的相同数据。
答案1
更一般地说,你不从另一个进程访问数据。可以设置共享内存部分,顾名思义,这些部分在多个进程之间共享。我不相信这些可以从 bash 或 dash 等任何 shell 中获得。但普通内存不能被其他进程访问。这是出于安全考虑而故意这样做的。
但是,您可以设置环境变量,子进程在创建时将继承这些变量。在 bash 中,你export
可以使用一个变量来执行此操作:
x=foo
export x
dash
echo $x