如何通过桌面图标启动 konsole 并且执行一段脚本初始化环境变量

apktool 没有图形界面,一般用的时候就先打开 konsole,然后执行 apktool 工作,当时想着,能不能在桌面建一个 desktop 文件,然后图标设置为 apktool 的图标,执行命令就是 konsole --host -e “apktool”,这样直接点击图标便可启动启动终端并且执行 apktool 命令了,但有个问题是,终端启动完 apktool 命令后窗口不会消失,但是不能继续输入命令了。
后来发现 Kali Linux 系统里面有类似的操作,他们有个 exec-in-shell 脚本,通过脚本执行 apktool 即可解决上面的问题(启动终端并且执行一次 apktool 命令,还能继续输入命令)。
现在我想能不能也在桌面见一个 desktop 文件,通过双击图标启动一个 konsole 进程并且执行一段初始化脚本初始化某些环境变量,一开始我设置执行命令为 konsole --host -e “source /home/cqs/init.sh”,这样会提示找不到 source 命令

看 konsole -e 的逻辑是去找可执行文件,而 source 是 shell 的 buildin function 所以建议指定 shell 再 source ,如 konsole -e 'bash source xxx'

我印象中试过,好像说找不到 bash,我今晚回去看看

但这里好像还有一个问题, konsole -e 'bash source xxx'执行后,终端会退出的,加上–host 虽然不退出,但是不能继续输入指令了

实在找不到给绝对路径

--hold 保持,执行完之后是不能继续跑指令,建议换个方案,看具体初始化变量?可以的话可以直接放 shell rc 文件,或者整个 shell function 来初始化,在 shell rc 里面 source ,需要时再调用,之后直接在终端跑对应程序。

虽说这样看起来比较烦琐?但感觉一直有开终端也挺正常吧,或者各种终端召唤方式怎么方便怎么来

主要是想开不同应用的时候设置不同的环境变量吧,如果实在不行就先打开终端,执行 rc 初始化,再工作。
我老是感觉这个应该挺容易实现的,但是折腾了好久都搞不定 :pensive:

额,上面 source 貌似有问题,不知道当时咋试的……

其实要达到最初的效果挺简单的,以 bash 为例

konsole -e bash -c 'source /the/path/to/the/script'
就能完成环境变量初始化

要能继续执行,开个 shell !
konsole -e bash -c 'source /the/path/to/the/script && bash'

这个真的可以 :kissing_heart:

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!!

早知我早点来论坛提问好了,少走点弯路 :rofl:

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。