首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用源命令指定的环境打开新终端

使用源命令指定的环境打开新终端
EN

Unix & Linux用户
提问于 2022-10-02 13:59:17
回答 1查看 386关注 0票数 2

我想运行一个命令,它打开一个终端,并将一组变量导入其中。

我该怎么做?我用的是xfce4终端。它有一个命令行arg“-命令”,用于在打开终端时执行命令。但是,arg似乎不允许执行源命令。

例如,

使用终端的--命令标志使用源环境vars

打开它

代码语言:javascript
复制
xfce4-terminal \
--command 'source somefile' \
--hold &

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

这就是在阅读xfce4终端稀疏的手册后自然会尝试的内容。

如何具体地调用新终端中的bash来源文件?

代码语言:javascript
复制
xfce4-terminal \
--command 'bash -c "source somefile \
--hold &

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

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

在bash中调用bash,在bash中调用bash,在终端中调用bash以运行命令

代码语言:javascript
复制
xfce4-terminal \
--command 'bash -c "source somefile; bash"' \
--hold &

这将打开终端并保持其打开,但不需要源环境。

看起来很傻,但在搜索论坛之后,你可能会尝试其他的方法。

使用bash使用源环境

调用bash。

代码语言:javascript
复制
xfce4-terminal \
--command 'bash -c "bash -c \"source somefile; some_command\""' \
--hold &

这将在新终端中获取新的env,但只要源cmd完成执行,它就会再次关闭。(只是一些猜测)

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

代码语言:javascript
复制
xfce4-terminal \
--command 'source_somefile' \
--hold &

不是的。当源cmd完成执行后,终端再次关闭。

虽然您不能因为认为这样做一定有效而受到指责:将源cmd放在脚本中,并使用带有--命令标志的终端运行它,以便在源命令执行完毕后,也可以使用-hold标志来阻止终端退出?

不如,将脚本运行为: bash -c‘somefile'?

否:一旦源cmd完成执行,终端就会再次关闭。

那么,如果没有打印出xfce4终端的命令,然后在收获的月亮下用鲜血祭祀,那么这是怎么做到的呢?然后嚎叫..。嚎叫..。

EN

回答 1

Unix & Linux用户

发布于 2022-10-02 14:36:21

您只需先进行源代码,然后打开终端(我使用的是可移植.,而不是bash特定的source):

代码语言:javascript
复制
. source_somefile && xfce4-terminal

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

代码语言:javascript
复制
$ cat /home/terdon/file
export my_var="foo"

然后用这样的化名:

代码语言:javascript
复制
alias my_profile='. /home/terdon/file && xfce4-terminal'

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

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/719506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档