小编bee*_*gee的帖子

Shell变量扩展 - 在使用env调用实用程序时间接

我试图找出env,(即用新环境调用一个util).

举个例子,我的环境变量KDEDIRS =/usr在我当前的环境中,让我说我输入:

env -i KDEDIRS=/home/newkdedir env
Run Code Online (Sandbox Code Playgroud)

这按预期输出KDEDIRS =/home/newkdedir.(即用新环境调用第二个env)

现在我想用相同的方式调用say utility echo

env -i KDEDIRS=/home/new_kdedir echo ${KDEDIRS}
Run Code Online (Sandbox Code Playgroud)

这显然不会起作用.shell在回显之前扩展了KDEDIRS.所以输出是/ usr (即当前环境中的值)

然后我尝试间接并输入

env -i KDEDIRS=/home/newkdedir echo ${!KDEDIRS} 
Run Code Online (Sandbox Code Playgroud)

这没什么输出.

我可能对此有点困惑但是如何根据新创建的echo环境使shell扩展KDEDIRS变量?

linux bash shell environment-variables

2
推荐指数
1
解决办法
1365
查看次数

标签 统计

bash ×1

environment-variables ×1

linux ×1

shell ×1