如何在command中写terminal下的程序

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
ls_wl
帖子: 10
注册时间: 2009-11-17 18:54

如何在command中写terminal下的程序

#1

帖子 ls_wl » 2010-08-18 20:29

想要建立快捷建,但是程序需要在terminal中运行才比较正常,但快捷键中只能输入command,如果在command中需要运行terminal下的程序,需要添加什么前缀。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何在command中写terminal下的程序

#2

帖子 eexpress » 2010-08-18 20:34

应该有选择“终端运行”的。当然不是在alt-f2。是建立桌面图标的界面中。甚至在mime设置的界面中。
强制,可以bash -c "xxx"
● 鸣学
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 如何在command中写terminal下的程序

#3

帖子 lainme » 2010-08-18 20:38

用man查看一下gnome-terminal的参数,可以打开一个终端窗口,在里面运行程序

gnome-terminal -x bash -c "echo test;read"

后面那个read可以防止窗口一闪而过,按回车键返回
ls_wl
帖子: 10
注册时间: 2009-11-17 18:54

Re: 如何在command中写terminal下的程序

#4

帖子 ls_wl » 2010-08-18 21:18

感想ls两位,虽然方法都可以。但我发现这样运行时,好像和在terminal下运行还是有些不一样。
我主要的问题是,现在直接打开emacs 打开shell模式后。发现cd $[PATH] 后,tab的自动补完会出错,补完的不是$[PATH]路径下的文件,而是进入$path之前目录下的文件。
但如果是terminal下打开的emacs,则不会有这个问题。
现在想直接建立快捷建运行emacs, 但是这样运行的emacs shell模式似乎没法避免这种completion的错误。即使加了ls两位的前缀也不行。
ls_wl
帖子: 10
注册时间: 2009-11-17 18:54

Re: 如何在command中写terminal下的程序

#5

帖子 ls_wl » 2010-08-18 22:28

终于知道问题了。emacs shell 在单独运行emacs时似乎是未正常加载 .bashrc 里定义的PATH。因此运行时直接访问.bashrc里定义的path会出问题。
在terminal下运行emacs, terminal 初始化加载过一次.bashrc, 运行的emacs里的shell也会同时初始化.bashrc里的内容。
在这种情况下,我想到的最简单的解决方法是建立一个.sh脚本,将所有自定的路径名在重新export一下,然后在运行emacs...。在将脚本定义为快捷键运行程序...
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何在command中写terminal下的程序

#6

帖子 eexpress » 2010-08-19 10:30

emacs 的额。这和bash又是2个环境了。环境变量不通用。类似cron里面
● 鸣学
回复