如何在 xterm 启动时运行命令?

use*_*942 5 startup xterm

如何在 xterm 启动时运行命令,即当 xterm 终端启动时命令已经执行?

我已经编辑了 .bashrc 文件以添加这一行:

xterm "ls"

但这不起作用。

请建议我该怎么做才能实现这一目标。

谢谢。

Tho*_*key 6

根据bash手册,~/.bashrc用于交互式 shell。xterm 运行一个 shell,所以也许你的“不工作”会导致一系列 xterm。

xterm 程序设置这些对脚本编写有用的环境变量XTERM_VERSION:和XTERM_SHELL。在您的~/.bashrc文件中,您可以使用前者xterm -ls仅运行一次:

if [[ -z "$XTERM_VERSION" ]]
then
    xterm -hold -e ls &
fi
Run Code Online (Sandbox Code Playgroud)

这似乎就是你所要求的:

  • 如果不是从现有的 xterm 运行,它将运行 xterm
  • 它会阻止 xterm 在ls完成后关闭。

显示 on shell 启动的一种看似更有用的方法lsls在每个 shell 启动时运行(对于这种情况,您不需要运行单独的xterm)。同样,您可以使用环境变量来执行此操作一次(如果您运行bash以创建子 shell):

if [[ -z "$XTERM_ONCE" ]]
then
    export XTERM_ONCE=$(date)
    ls
fi
Run Code Online (Sandbox Code Playgroud)