Shell脚本执行完毕后不会放弃提示符

Shell脚本执行完毕后不会放弃提示符

我正在尝试重新创建一个在使用 tmux 时调用的命令ta(对所有人),该命令旨在在所有可见窗格中执行给定的命令,但在本例中是对当前工作区中的所有可见 shell 执行,因为我'我现在使用平铺窗口管理器。

我得到了使这项工作所需的缺失部分上一个问题

该命令的工作原理很简单,首先我捕获一个信号(SIGUSR2在本例中,基于该问题中的建议)。

然后当我想发送命令时我:

  • 将命令(以及检查工作区的保护子句)写到配置位置的文件中
  • 将信号发送到所有 shell(本例中为 zsh)
  • 这会导致 shell 在配置的位置获取脚本
  • 仅当 shell 位于当前工作空间中时才会执行

捕获命令(将其添加到以下位置~/.bashrc

# Add trap for ta command
export USR2_COMMAND_FILE=$HOME/.ta_executable
export TA_SHELL="zsh"
trap '[[ -r $USR2_COMMAND_FILE ]] && . $USR2_COMMAND_FILE' USR2

剧本(~/dir/in/$PATH/ta):

#!/bin/bash

to_execute="$@"
workspace="$(xdotool get_desktop)"
script="if [[ \"$workspace\" == \"\$(xdotool get_desktop)\" ]]; then $to_execute; fi"
script_location="$USR2_COMMAND_FILE"

echo $script > $script_location

for pid in $(pgrep "$TA_SHELL"); do
    kill -SIGUSR2 $pid
done

问题是命令在所有 shell 中执行然后似乎不要放弃提示(这是正确的说法吗?),我必须移动到该 shell,然后手动<enter>按才能完成,我尝试了各种方法,但似乎没有任何效果。

我怎样才能让它放弃提示?

相关内容