模拟终端用xfce4-terminal -x [命令] 开启新终端并执行命令,显示不对

如题。终端用xfce4-terminal -x man ls,虽然也会执行命令,但是和原来终端执行man ls显示不同。前者只有黑白,后者是有彩色显示的。类似的,xfce4-terminal -x nnn虽然也会启动nnn,但颜色设置不对,应该是xfce4-terminal -x [命令],没有在新终端载入~/.bashrc造成的(先运行xfce4-terminal,再输入命令则一切正常)。如何解决?谢谢各位哈。

加个 bash -c 呗。

试过了不行,xfce4-terminal -x bash -c "man ls"还是黑白不是彩色显示。

那可能是你的设置对 bash -c 不生效。

不懂啊,试了下,mlterm是正常的,就是执行mlterm -e man ls是彩色显示。

用这个xfce4-terminal -x 'echo $-'查看一下是否处于交互式模式,如果不是的话,就只能用xfce4-terminal -x 'bash -ic your-cmd'了。

xfce4-terminal -x 'echo $-'
跳出警告
图片

改成这样试试:xfce4-terminal -x echo '$-'

闪下就没了。。。

加个-H选项试试?

子进程返回0并正常退出

echo $-会有输出的啊,你在终端运行一下就知道了。
或者用这个xfce4-terminal -x bash进去之后再运行上面的命令,看看输出是什么。

我猜是因为xfce4-terminal没有运行在交互式模式下,所以bashrc里的内容不生效。
你直接用xfce4-terminal -x bash -ic ls应该就好了。

$ echo $-
himBHs

可以了,谢谢哈

这是在终端运行的还是xfce4-terminal -x bash之后运行的?
如果是后者的话,这应该是一个 bug,因为输出里有字母i说明 bash 确实运行在交互模式下,这就意味着bashrc里的内容应该正常加载了才对,但alias ls='ls --color=auto'却没有生效,说明bashrc并没有被加载。

好像不太对,用xfce4-terminal -x bash的话就是自己再启动一个bash了,这样echo $-的输出就没有意义了。