例如:

例如:

我想运行一个打开终端并向其中输入一组变量的命令。

我怎样才能做到这一点?我正在使用 xfce4 终端。它有一个命令行参数“--command”,用于在打开终端时执行命令。但该 arg 似乎不允许执行源命令。

例如:

使用终端的 --command 标志通过源环境变量打开它

xfce4-terminal \
--command 'source somefile' \
--hold &

但它只是给出一个错误:无法执行子进程“源”:没有这样的文件或目录。

这就是您在阅读 xfce4-terminal 的稀疏联机帮助页后自然会尝试的方法。

在新终端中专门调用 bash 来获取文件怎么样?

xfce4-terminal \
--command 'bash -c "source somefile \
--hold &

这将执行源命令,但一旦完成,终端就会退出。

在搜索论坛并发现必须调用 bash 才能运行 bash 命令源之后,您可以尝试这样做。 (那是什么?用 bash 实例启动终端来调用另一个 bash 来运行命令)

在 bash 中、在 bash 中、在终端中调用 bash 来运行命令

xfce4-terminal \
--command 'bash -c "source somefile; bash"' \
--hold &

这将打开一个终端并使其保持打开状态,但没有源环境。

看起来很愚蠢,但在搜索论坛后您可以尝试其他方法。

使用 bash 在源环境中调用 bash

xfce4-terminal \
--command 'bash -c "bash -c \"source somefile; some_command\""' \
--hold &

这会在新终端中获取新环境,但一旦源 cmd 执行完毕,它就会再次关闭。(只是一些猜测)

创建一个名为 source_somefile 的脚本,该脚本调用 bash 并运行“source somefile”

xfce4-terminal \
--command 'source_somefile' \
--hold &

不会。源 cmd 执行完毕后,终端将立即再次关闭。

尽管您不能因为认为这肯定有效而受到责备:将源 cmd 放入脚本中并使用带有 --command 标志的终端运行该脚本,以便 --hold 标志也可以用于阻止终端退出源命令何时完成执行?

怎么样,运行脚本:bash -c 'source somefile'?

否:源 cmd 执行完毕后,终端将再次关闭。

又怎样除了打印 xfce4-terminal 联机帮助页并在丰收的月亮下以血祭仪式焚烧它之外,还需要完成此操作吗?然后嚎叫……嚎叫……

答案1

您只需先获取源代码,然后打开终端(我使用的是便携式.而不是特定于 bash 的source):

. source_somefile && xfce4-terminal

终端将继承其来源环境。例如,如果我有这个:

$ cat /home/terdon/file
export my_var="foo"

然后创建一个像这样的别名:

alias my_profile='. /home/terdon/file && xfce4-terminal'

然后我可以运行别名,这将打开一个新终端,在其中echo $my_var打印foo.请注意,为此需要export编辑变量,并且您应该使用正在获取的文件的完整路径。

显示此操作的屏幕截图

答案2

我见过这里一个可能的解决方案。所以也许--disable-server最终使用标志有效......

相关内容