重命名终端标题&&使用别名运行应用程序

重命名终端标题&&使用别名运行应用程序

尝试创建一个重命名终端标题并运行应用程序的命令,我将这些命令添加到 .bash_aliases 文件中。我正在使用的重命名命令是:PS1='\[\e]0;test\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 如果我单独使用它并且在运行应用程序后它会按预期工作。但如果我使用这样的命令:

alias rpcs3="PS1='\[\e]0;test\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' && ./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage"

使用后一个命令,终端标题仅在应用程序关闭后更改,如下例所示:

关闭应用程序之前

前


关闭应用程序后

后

我应该怎么办?

答案1

该别名不起作用,因为 shell 提示符会等待程序完成。

解决此问题的方法是首先调用命令./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage并在后台运行它:

alias rpcs3="./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage & PS1='\[\e]0;test\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '"

考虑到你的命令将在后台运行,当你按下时,Enter你将返回到 shell 提示符(标题将在之前设置,所以这不再有问题)。如果您想返回前台进程,./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage您应该使用命令:fg。要获取当前 shell 中哪些作业在后台运行,您可以使用内置的 command/shell jobs。例如:

$> jobs -l
#Output
[1]   Running                 gnome-calculator &
[2]-  Running                 gnome-calculator &
[3]+  Running                 nautilus &

如果我想返回前台进程,nautilus我可以使用:

fg 3
#You can also specify the `command name` instead of the ID.

在您的情况下,您可能只会在后台有一个进程(./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage)。所以你可以简单地使用fg 1.

答案2

您正在尝试使用提示来更改标题,这意味着只有当您的应用程序退出时标题才会更改。更好的方法可能是直接在脚本中更改标题:

#!/bin/sh
title='this is a test'
base='/PATH/TO/THE/ABSOLUTE/LOCATION/OF/rpcs3'    # Fixme

[ -n "$TERM" ] && printf "\033]0;%s\007" "$title"
exec "$base/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage"

将此脚本放在您的路径中的某个位置(通常$HOME/bin甚至是/usr/local/bin)并使其可执行。然后您可以像调用任何其他程序一样调用它。例如,如果您调用了该文件,dorpcs3那么这就是您运行的内容。

请注意,这不会在应用程序退出后重置标题,但默认的 shell 提示符会为您执行此操作。

相关内容