gpt4 book ai didi

linux - 如何打开 xterm -e 'command' 并保留已声明的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 09:11:15 25 4
gpt4 key购买 nike

我想运行以下命令:

$ testfunction (){ echo 123;}
$ xterm -hold -e "testfunction"

returns: testfunction command not found (in the new xterm window).

但是当我在主终端调用函数时,它返回 123

$ testfunction
123

尝试过

中声明 -F | grep testfunction 我可以看到该函数已声明。

试图声明一个变量:

$ variable='123'
$ xterm -hold -e "echo $variable"

returns: 123 (in new xterm).

为什么新的 oppened xterm 没有找到声明的函数,但是找到了声明的变量?

最佳答案

您需要导出函数/变量以让子进程访问它们。

testfunction() { echo 123; }
export -f testfunction
xterm -hold -e "testfunction"

result

而且,xterm -hold -e "echo $variable" 实际上不起作用,它只是看起来像这样。 $variable 在双引号中,因此在调用 xterm 之前展开,即它的值被传递给 xtermxterm -hold -e 'echo $variable' 将不起作用,因为 variable 未导出。

关于linux - 如何打开 xterm -e 'command' 并保留已声明的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55941454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com