从终端和bash脚本回显PROMPT_COMMAND



在尝试编写bash脚本时,我在尝试执行它时遇到了一个奇怪的问题。我想回显$PROMPT_COMMAND变量,因此,我有下面的bash脚本

#!/bin/bash 
echo $PROMPT_COMMAND

执行这个脚本不会产生任何反响。为什么?当我执行时,它没有意义

echo$PROMPT_COMMAND

从命令提示符中,我获得存储在prompt_command 中的内容

所以。。。我做错了什么,缺少了什么?

关于环境的一件事:在ubuntu 20 上尝试过

问题是基于您如何执行脚本以及脚本使用的环境。

使文件可执行后,有两种运行方式:

  1. ./script.sh
  2. . script.sh

第一种方法是在一个新的bash子shell中执行它,它不能访问$PROMPT_COMMAND变量,因为根据定义,它是新的。

第二种方法是在当前shell的上下文中执行脚本。这意味着它可以访问$PROMPT_COMMAND变量。这是正确的做法。每当您需要处理提示时,都需要以这种方式执行它。

注意:#2与运行source script.sh相同。它也是称为";采购";你的剧本。以防万一你碰到这些术语,你就会知道它们的意思。

相关内容

  • 没有找到相关文章

最新更新